【问题标题】:Going Backwards Through a doubly linked list通过双向链表向后走
【发布时间】:2014-01-02 16:37:45
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    这样的陈述:

    CurrPtr = 
    

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

    CurrPtr->Prev = 
    

    CurrPtr->Next = 
    

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

    你的陈述

    CurrPtr->Prev=CurrPtr

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      相关资源
      最近更新 更多