通过双向链表向后看

时间:2013-12-15 05:11:39

标签: pointers linked-list nodes singly-linked-list doubly-linked-list

我无法理解如何初始化节点结构中的prev指针。我看到前进我将CurrPtr->Next设置为一个新节点,并且您的当前Pointr设置为CurrPtr->Next,这是您刚创建的新节点。但你怎么倒退呢。这是CurrPtr->Prev=CurrPtr吗?我只是很难想象它。

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

1 个答案:

答案 0 :(得分:1)

在这里做一些假设......

这样的陈述:

CurrPtr = 

说“我将列表中的当前位置设置为X”。

CurrPtr->Prev = 

CurrPtr->Next = 

分别构建从当前节点到上一个节点和下一个节点的链接。

你的陈述

  

CurrPtr->上= CurrPtr

不会将您移动到列表中,它只是将前一个节点设置为当前节点,从而创建一个闭环,尝试移动到Prev将返回到当前节点。创建新节点时,还可以通过将其链接到当前节点来设置其与其他节点的链接。

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

一旦你建立了链接,你就可以从当前节点移动到下一个节点,然后移动回起始节点,因为你已经设置了Prev指针。

CurrPtr = CurrPtr->Next;
CurrPtr = CurrPtr->Prev;