[英]I have the template for a linked list and I am trying to turn it into a circular doubly linked list in java
我試圖將一個鏈表變成一個循環的雙鏈表,但在使用鏈表類中的許多不同方法時遇到了一些麻煩,例如,我不知道如何更改writeList()方法這就是現在的樣子
public void writeLinkedList() {
Node p, q;
System.out.println("Writing list:");
for (p = listStart, q = null; p != null; q = p, p = p.getNext());
for (p = listStart; p != q; p = p.getNext())
System.out.println(p.getData());
}
我使用第一個for循環將q標識為列表中的最后一個節點,我不確定該如何做。 我的節點類也發布在下面
public int getData() {
return data;
}
public Node getNext() {
return next;
}
public Node getPrev(){
return prev;
}
//Mutators
public void setData(int x) {
System.out.println("inside setData");
data = x;
}
public void setNext(Node n) {
next = n;
}
public void setPrev(Node p){
prev = p;
}
我建議使用while循環來查找最后一個節點。 您可以這樣做:
Node p = listStart;
while(p.getNext() != null)
{
Node temp = p;
p = p.getNext();
p.setPrev(temp);
}
//now that we are out p will be the last node in the list
//set p's next node to the first node
p.setNext(listStart);
listStart.setPrev(p);
這將使您的列表具有循環性和雙重鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.