你如何在链表中使用先前的指针(加倍) [英] How do you use previous pointer in linked list(doubly)

查看:86
本文介绍了你如何在链表中使用先前的指针(加倍)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,如果我们正在创建一个双向链表,那么前一个节点是如何管理的?
哪里有后点

在这种情况下我使用后面作为当前指针



我尝试过:



So if we are creating a doubly linked list how is previous node managed
where does rear points
in this case I am using rear as current pointer

What I have tried:

node *newnode=new node();
    newnode->v=a;
    if(rear!=NULL)
    {
        rear->next=newnode;
        rear->next->prev=front->next;
        newnode->next=NULL;
        newnode->prev=rear;
        rear=newnode;
    }
    else
    {
        front->next=newnode;
        front->prev=NULL;
        newnode->next=NULL;
        newnode->prev=front;
        rear->prev=front;
        rear=newnode;
    }

推荐答案

节点中有两个指针, next 指向列表中的下一个节点,如果没有则指向NULL。 之前的指向列表中的(显然)上一个节点,如果是第一个节点,则指向NULL。您可以通过使用列表中第一个节点的地址初始化指针来管理列表。在添加或删除节点时,您需要相应地更新其链接。
You have two pointers in the node, next points to the next node in the list, or NULL if there are no more. previous points to the (obviously) previous node in the list, or NULL if it is the first. You manage your list by initialising a pointer with the address of the first node in the list. As you add or remove nodes, you update their links appropriately.


Richard 已经为您提供了答案。

请注意

Richard already gave you the answer.
Please note
Quote:

node * newnode = new node();

newnode-> v = a;

if(后!= NULL)

{

后 - > ; next = newnode;

rear-> next-> prev = front-> next;

newnode-> next = NULL;

newnode-> prev = rear;

rear = newnode;

}

else

{

front-> next = newnode;

front-> prev = NULL;

newnode-> next = NULL;

newnode-> prev = front;

rear-> prev = front; //< ==== BUG here

后退= newnode;

}

node *newnode=new node();
newnode->v=a;
if(rear!=NULL)
{
rear->next=newnode;
rear->next->prev=front->next;
newnode->next=NULL;
newnode->prev=rear;
rear=newnode;
}
else
{
front->next=newnode;
front->prev=NULL;
newnode->next=NULL;
newnode->prev=front;
rear->prev=front;//<==== BUG here
rear=newnode;
}





标记行中有一个错误:您正在取消引用a NULL 指针(后面)。


这篇关于你如何在链表中使用先前的指针(加倍)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆