這個問題有點令人困惑。你是問如何將一個節點放在列表的末尾,或者是列表中的下一個項目。
我不得不在今天做一個家庭作業分配的方式(這是Java雖然)。如果您想要始終將一個節點添加到列表的末尾,那麼您還需要編輯列表類以包含列表的頭部和尾部。這將允許您將項目添加到結尾或開始。
如果你想總是添加一個節點到最後,那麼你可以嘗試編輯代碼,這樣當你添加一個節點到最後時,前一個節點的下一個節點值將被設置爲尾部而不是空值。這將始終允許您將項目添加到列表的末尾(這是大多數添加方法做,除非位置反正指定)
簡而言之: 添加Node tailNode = null;
到Class
並添加將獲得的方法併爲Node
類設置下一個節點。一旦做到這一點,然後再編輯代碼,以便它看起來是這樣的:
class Class1
{
public class Node()
{
public int Data;
public Node Next;
//Class to set next node
public void setNext(Node nextNode)
{
//Set next node
Next = nextNode;
}
//Get next node
public Node getNext()
{
return Next;
}
}
private Node FirstNode=null;
private Node lastNode = null;
public void AddBefore(int number)
{
Node NewNode=new Node();
NewNode.Next=FirstNode;
NewNode.Data=number;
FirstNode=NewNode;
}
public void AddAfter(int number)
{
if (FirstNode==null)
{
AddBefore(number);
}
else
{
if(FirstNode.getNext() == null)
{
//No tail. Make this node tail
lastNode = new Node();
lastNode.Data = number;
//Set first node's next to last node
FirstNode.setNext(lastNode);
}else{ //TailNode already set
//New node to be tail
Node newLastNode = new Node();
newLastNode.Data = number;
//Set the current tail node to have this node as next
lastNode.setNext(newLastNode);
//Make new last node last node
lastNode = newLastNode;
}
}
}
}
的代碼可能會有點關閉(我還沒有真正測試過),但是這是你是什麼樣的主畫面將不得不做。
正在做作業嗎? = P – dcarneiro 2011-03-28 18:43:42
不是功課,但我有一個練習,我根本不理解這些列表。 – Arthur 2011-03-28 18:44:59
在附註上,您可能想要將AddBefore和AddAfter方法重命名爲AddFront和AddBack之類的東西。您現在使用的名稱有些令人困惑,因爲它們聽起來像您試圖在特定索引之前或之後放置節點。 – 2011-03-28 19:21:57