首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

双向循环链表里面如何在头结点的后面增加一个节点

2013-12-23 
双向循环链表里面怎么在头结点的后面增加一个节点?我定义的链表[解决办法]//在链表的头结点后面增加一个节

双向循环链表里面怎么在头结点的后面增加一个节点?
我定义的链表


[解决办法]
//在链表的头结点后面增加一个节点(增加第一个节点并将节点的信息保存在e中)
void Insert(DullLinkList &D,int &e){
     
    DullLinkList s=new DNode;  //插入的节点是s


    DullLinkList p2=D;  //插入位置的第二个位置
    DullLinkList p1=D->prior;  //插入位置的第一个位置

    //以下为插入过程
    s->data=e;
    p1->next=s;
    s->prior=p1;
    
    s->next=p2;
    p2->prior=s;
 
}



看你原来的程序,虽然只有两三句,感觉思维好乱
[解决办法]
那我需要删除含有某个元素的节点怎么弄啊?
先自己弄,有问题了再贴出来让大家帮你看。我觉得写程序首先要学会的是思考双向循环链表里面如何在头结点的后面增加一个节点
[解决办法]
引用:
Quote: 引用:

//在链表的头结点后面增加一个节点(增加第一个节点并将节点的信息保存在e中)
void Insert(DullLinkList &D,int &e){
     
    DullLinkList s=new DNode;  //插入的节点是s
    DullLinkList p2=D;  //插入位置的第二个位置
    DullLinkList p1=D->prior;  //插入位置的第一个位置

    //以下为插入过程
    s->data=e;
    p1->next=s;
    s->prior=p1;
    
    s->next=p2;
    p2->prior=s;
 
}


看你原来的程序,虽然只有两三句,感觉思维好乱

楼主要的是在头节点后增加一个节点,不是在尾部增加一个节点。。。。


你仔细看清楚,何为循环链表??
[解决办法]
循环的概念就是尾巴的下一个就是头
我给的代码,你可以在任何位置插入
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

//在链表的头结点后面增加一个节点(增加第一个节点并将节点的信息保存在e中)
void Insert(DullLinkList &D,int &e){
     
    DullLinkList s=new DNode;  //插入的节点是s
    DullLinkList p2=D;  //插入位置的第二个位置
    DullLinkList p1=D->prior;  //插入位置的第一个位置

    //以下为插入过程
    s->data=e;
    p1->next=s;
    s->prior=p1;
    
    s->next=p2;
    p2->prior=s;
 
}


看你原来的程序,虽然只有两三句,感觉思维好乱

楼主要的是在头节点后增加一个节点,不是在尾部增加一个节点。。。。


你仔细看清楚,何为循环链表??

楼主的加入方法不也是循环码?
[解决办法]
引用:
循环的概念就是尾巴的下一个就是头
我给的代码,你可以在任何位置插入

看清楚楼主的需求吧,“在链表头结点后面后面插入一个结点”。楼主这个写法,头结点D中的data是不存有效数据的,固定作为头结点的。
[解决办法]
我只是说楼主的加入方法思维有点乱

插入,一定是在两者之间
虽然,"两者"中可能有一者为NULL
但即使如此,你只要体现了"两者"这个概念
思维就不会乱

就楼主的问题,就是DullLinkList p=new DNode;有问题
他根本不知道问题出在哪里
根源就是纠结于插入的逻辑

那么,在中间和头节点的插入你非要分开两种情况
不更乱套吗?
[解决办法]
引用:
我只是说楼主的加入方法思维有点乱

插入,一定是在两者之间
虽然,"两者"中可能有一者为NULL
但即使如此,你只要体现了"两者"这个概念
思维就不会乱

就楼主的问题,就是DullLinkList p=new DNode;有问题
他根本不知道问题出在哪里
根源就是纠结于插入的逻辑

那么,在中间和头节点的插入你非要分开两种情况
不更乱套吗?

前面给他讲了,DullLinkList p=new DNode;有问题。他后面有一行p=D->next,不知道你们看到没有?
前面的new只会引起内存泄露,而不是链表乱插。
[解决办法]
循环链表要在头部插入,我觉得应该用一种方法记住头部
在环上多个尾巴如何?

热点排行