• 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)                 //测试是否为空
  • 相关阅读:
    js取当前时间的秒级时间戳
    微信自动聊天脚本
    小程序 缓存过期问题
    去掉表格默认样式
    css3 画心
    数据导入(二):MapReduce
    数据导入(一):Hive On HBase
    HBase参数优化
    Hadoop运维手记
    HBase优化相关
  • 原文地址:https://www.cnblogs.com/wouldguan/p/2730222.html
Copyright © 2020-2023  润新知