Pointers 反向浏览双链接列表

Pointers 反向浏览双链接列表,pointers,linked-list,nodes,singly-linked-list,doubly-linked-list,Pointers,Linked List,Nodes,Singly Linked List,Doubly Linked List,我很难理解如何在节点结构中初始化prev指针。我看到接下来我将CurrPtr->Next设置为一个新节点,并且您当前的指针设置为CurrPtr->Next,这就是您刚才创建的新节点。但是,你如何倒退呢。是不是因为这个CurrPtr->Prev=CurrPtr?我只是很难想象它 While(cont!=-1) { cin>>cont; CurrPtr->Next=new Node; CurrPtr=CurrPtr->Next; } 在这里做一些假设 这样的陈述: Curr

我很难理解如何在节点结构中初始化prev指针。我看到接下来我将
CurrPtr->Next
设置为一个新节点,并且您当前的指针设置为
CurrPtr->Next
,这就是您刚才创建的新节点。但是,你如何倒退呢。是不是因为这个
CurrPtr->Prev=CurrPtr
?我只是很难想象它

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

在这里做一些假设

这样的陈述:

CurrPtr = 
正在说“我正在将我在列表中的当前位置设置为X”

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

你的声明

CurrPtr->Prev=CurrPtr

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

While(cont!=-1)
{
cin>>cont;
CurrPtr->Next=new Node;
CurrPtr->Next->Prev=CurrPtr;
}
创建链接后,您可以从当前节点移动到下一个节点,然后再移动回起始节点,因为您已经设置了上一个指针

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