0

我無法理解如何初始化節點結構中的prev指針。我看到,後續我將CurrPtr->Next設置爲一個新節點,並且您的Current Pointr設置爲CurrPtr->Next,這就是您剛創建的新節點。但你是如何倒退的。是否與這CurrPtr->Prev=CurrPtr?我只是難以想象它。往回穿過雙向鏈表

While(cont!=-1) 
{ 
cin>>cont; 
CurrPtr->Next=new Node; 
CurrPtr=CurrPtr->Next; 
} 

回答

1

使這裏的一些假設...

聲明是這樣的:

CurrPtr = 

都在說: 「我在設置列表中X我目前的職位」。

CurrPtr->Prev = 

CurrPtr->Next = 

分別建立從當前節點的鏈接到一個和下一個節點。

你的

CurrPtr->上一個= CurrPtr

聲明

不將您在列表中,它只是設置一個節點到當前節點從而形成一個閉環,其中試圖移動到Prev會將您返回到當前節點。當您創建一個新節點時,您還可以通過將其鏈接到當前節點來將其鏈接到其他節點。

While(cont!=-1) 
{ 
cin>>cont; 
CurrPtr->Next=new Node; 
CurrPtr->Next->Prev=CurrPtr; 
} 

一旦你做了鏈接,那麼你可以從當前節點移動到下一個節點,然後因爲你已經設置的上一個指針移回起始節點。

CurrPtr = CurrPtr->Next; 
CurrPtr = CurrPtr->Prev; 
+0

這真的幫了我很多謝! – DaCat