#java
Вопрос:
У меня есть 3 класса для этой проблемы, во-первых, класс узлов
public class Node {
private int element;
private Node next;
// constructor
public Node(int data) {
element = data;
next = null;
}
// link a new node to this node
public void setlink(Node newNode) {
next = newNode;
}
// return next node
public Node getNextNode() {
return next;
}
// return element of this node
public int getElement() {
return element;
}
}
во-вторых,класс SLL
public class SLL {
private static final int Node = 0;
private Node head = null;
private Node tail = null;
private int size = 0; // SLL's size
public void addLast(int data) {
// create new node
Node x = new Node(data);
if (size == 0) {
head = x;
tail=x;
} else {
tail.setlink(x);
tail = x;
}
size ;
}
public void findElement(int element) {
boolean find_element = false;
Node p=head;
for (int i=1; i<=size ; i ) {
if (p.getElement() == element) {
find_element = true;
break;
}
p=p.getNextNode();
}
if (find_element != true) {
System.out.println("not found");
}
}
public void countElement (int element) {
int countNumber = 0;
Node p = head;
for (int i = 1;p!=null; p=p.getNextNode()){
if (p.getElement()==element) {
countNumber ;
break;
}
}
System.out.print("Position of " element " is " countNumber);
}
public void insertAfter(int gevenElement, int newElement) {
boolean find_element = false;
Node p=head;
for (int i=1; i<=size; i ) {
if (p.getElement() == gevenElement) {
find_element = true;
break;
}
p=p.getNextNode();
}
if (find_element != true) {
System.out.println("not found");
}
if (find_element = true) {
int countNumber = 0;
Node q = head;
for (int i = 1;q!=null; q=q.getNextNode()) {
if(q.getElement()==gevenElement) {
countNumber ;
break;
}
}
System.out.print("Position of " gevenElement " is " countNumber);
Node prevNode=new Node(gevenElement);
if (find_element = true) {
Node newNode=new Node(newElement);
newNode.setNext(prevNode.getNext());
prevNode.setNext(newNode);
size ;
}
}
}
}
и для последнего-это основной класс, который не может измениться
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
SLL sll = new SLL();
int given,newe;
System.out.println("Enter the element value for adding new element afer it ..");
given = sc.nextInt();
System.out.println("Enter new element value..");
newe= sc.nextInt();
sll.insertAfter(given,newe );
}
}
У меня возникла проблема с классом SLL, я хочу создать метод ( public void insertAfter(int gevenElement, int newElement)
), который будет содержать новый элемент (newElement), который будет вставлен после элемента gevenElement.
Комментарии:
1. Привет @701n7 — вы имеете в виду, что вам нужен этот метод или что-то еще (после этого уже есть вставка [хотя и неправильная])? В качестве альтернативы находка приведет вас на полпути туда. как только найденный p находится в нужной точке, чтобы установить его рядом с новым узлом, а следующий для нового узла указывает на то, что в нем было у p.next.