我遇到了我的OOP类的项目有问题。我差不多完成了,但仍缺少toString方法和主要方法。不太确定如何去做,并会感谢任何帮助。 我希望我的toString
方法的功能如下:实现一个toString方法来打印一个LinkedList
返回存储在列表中的所有项目的字符串表示。空列表的字符串表示看起来像
head--><--tail
一个非空列表的字符串表示的样子: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;
}
}
和这里是我迄今为止在我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;
}
}
我在想一段时间的循环是去这里的路,但后来我不确定。
为什么要做'data = data' ..但是在你的'toString()'方法中创建一个临时的'IntegerNode'并循环遍历从头到尾,当它是尾部时停止......附加每次都有.getData()'给它# – 3kings
在你的代码中,'setNext()'设置'prev = in','setPrev()'也设置'prev = in'。这样对吗? –
@Matputer谢谢先生。好点。 –