Ho problemi con un progetto che ho per la mia classe OOP. Ho quasi finito, ma manca ancora un metodo toString e un metodo principale. Non sono proprio sicuro di come procedere e apprezzerei qualsiasi aiuto. Voglio che il mio metodo toString
di funzionare come segue:Implementazione di un metodo toString per stampare una LinkedList
Restituisce una rappresentazione in formato stringa di tutti gli elementi memorizzati nella lista. Una rappresentazione di stringa di una lista vuota assomiglia
head--><--tail
Una rappresentazione di stringa di una lista non vuota assomiglia: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;
}
}
e qui è quello che ho finora nella mia classe IntegerLinkedList
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;
}
}
Sto pensando che un ciclo while è la strada da percorrere qui, ma di nuovo non ne sono sicuro.
Perché fai 'data = data' .. ma nel tuo metodo' toString() 'crea un' IntegerNode 'temporaneo e passa da capo a coda e si ferma quando è la coda ... 'aggiungendo .getData() 'ad esso ogni volta' – 3kings
Nel tuo codice,' setNext() 'sta impostando' prev = in' e 'setPrev()' sta anche impostando 'prev = in'. è giusto? –
@Matputer Grazie signore. Buon posto –