C++链表首尾节点的常规方案

//链表首尾节点的常规方案
    //示例代码片段,不能编译

    ///////////////////////////////////////////////////////////////
    //循环,永远非空
    head->next = head;  //头插入
    t->next = x->next; x->next = t;     //x节点后插入t节点
    x->next = x->next->next;            //删除x后的节点

    t=head;
    do{ t=t->next; } while(t != head)   //循环遍历

    if(head->next ==  head)             //测试是否只有一个元素

    ///////////////////////////////////////////////////////////////
    //有头节点,尾节点为null
    head = 0;                           //初始化

    if(x==0) {head=t; head->next = 0;}  //在x节点后插入t节点
    else { t->next=x->next; x->next=t;}

    t = x->next; x->next=t->next;       //删除x后的节点
    //x->next = x->next->next 表达更简单

    for(t=head; t!=0; t=t->next)        //遍历循环
    if(head == 0)                       //测试是否为空

    ///////////////////////////////////////////////////////////////
    //有哑元头节点,尾节点为null
    head = new node; head->next=0;      //初始化
    t->next = x->next; x->next = t;     //x节点后插入t节点
    t = x->next; x->next=t->next;       //删除x后的节点
    //x->next = x->next->next 表达更简单

    for(t=head->next; t!=0; t=t->next)  //遍历循环
    if(head->next == 0)                 //测试是否为空

    ///////////////////////////////////////////////////////////////
    //有哑元头节点和尾节点
    head=new node;                      //初始化
    z=new node;
    head->next=z; z->next=z;

    t->next=x->next; x->next=t;         //在x节点后插入t节点
    x->next = x->next->next             //删除x后的节点
    for(t=head->next; t!=z; t=t->next)  //遍历循环
    if(head->next == z)                 //测试是否为空

原文链接: https://www.cnblogs.com/wouldguan/archive/2012/10/18/2730222.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/66213

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午12:13
下一篇 2023年2月9日 下午12:14

相关推荐