我无法理解如何初始化节点结构中的prev指针。我看到前进我将CurrPtr->Next
设置为一个新节点,并且您的当前Pointr设置为CurrPtr->Next
,这是您刚创建的新节点。但你怎么倒退呢。这是CurrPtr->Prev=CurrPtr
吗?我只是很难想象它。
While(cont!=-1)
{
cin>>cont;
CurrPtr->Next=new Node;
CurrPtr=CurrPtr->Next;
}
答案 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;