Ich habe Probleme mit einem Projekt, das ich für meine OOP-Klasse habe. Ich bin fast fertig, aber immer noch eine toString-Methode und eine Hauptmethode. Ich bin mir nicht sicher, wie ich das machen soll und würde mich über jede Hilfe freuen. Ich möchte meine toString
Methode funktioniert wie folgt:Implementierung einer toString-Methode zum Ausdrucken einer LinkedList
Gibt eine Stringdarstellung aller Elemente in der Liste gespeichert. Eine String-Darstellung einer leeren Liste sieht wie
head--><--tail
Eine String-Darstellung einer nicht-leeren Liste wie folgt aussieht:head-->134<-->-8<-->42<-->1<--tail
public class IntegerNode{
private IntegerNode next;
private IntegerNode prev;
private int data;
public IntegerNode(int data){
next = next;
prev = prev;
data = data;
}
public int getData(){
data = data;
return this.data;
}
public IntegerNode getNext(){
return next;
}
public IntegerNode getPrevious(){
return prev;
}
public void setNext(IntegerNode in){
prev = in;
}
public void setPrevious(IntegerNode in){
prev = in;
}
}
und hier ist das, was ich bisher in meiner IntegerLinkedList Klasse
public class IntegerLinkedList{
private IntegerNode head;
private IntegerNode tail;
public IntegerLinkedList(){
head = null;
tail = null;
}
public void addFirst(int x){
IntegerNode nH = new IntegerNode(x);
if (head == null) {
head = nH;
tail = nH;
}else{
head.setPrevious(nH);
nH.setNext(head);
head = nH;
}
}
public void addLast(int x){
IntegerNode t = new IntegerNode(x);
if (tail == null){
head = t;
tail = t;
}else{
tail.setNext(t);
t.setPrevious(tail);
tail = t;
}
}
public int peekFirst(){
return head.getData();
}
public int peekLast(){
return tail.getData();
}
public String toString(){
if (head == null && tail == null){
String empty = "head--><--tail";
return empty;
}else{
String h = "Head--> " + head;
String t = tail + " <--Tail";
String m = " <--> ";
// while(IntegerNode.getNext() != null)
//}
//return h + m + t;
}
}
public int pollFirst(){
int x = head.getData();
head = head.getNext();
head.setPrevious(null);
return x;
}
public int pollLast(){
int x = tail.getData();
tail = tail.getPrevious();
tail.setNext(null);
return x;
}
}
Ich denke, eine Weile Schleife ist der Weg, hier zu gehen, aber dann wieder bin ich mir nicht sicher.
Warum machst du 'data = data' .. aber in deiner' toString() 'Methode erzeuge einen temporären' IntegerNode' und laufe von Kopf bis Schwanz durch und höre auf, wenn es der Schwanz ist ... 'anhängt den .getData() 'jedes Mal ' – 3kings
In Ihrem Code setzt' setNext() '' prev = in' und 'setPrev()' setzt auch 'prev = in'. ist es richtig? –
@Matputer Danke, mein Herr. Gute Stelle. –