首页 > 其他 > 详细

不带头节点的循环链表的入队和出对操作

时间:2015-10-14 01:47:40      阅读:329      评论:0      收藏:0      [点我收藏+]

数据类型如下:

typedef struct LNode{

    ElemType data;

    struct LNode *next;

}*LinkList;


//入队操作                                  //出队操作

Status enQueue(LinkList & L,ElemType e)     Status DeQueue(LinkList &L,ElemType &e)     

{                                           {

    s = (LinkList)malloc(sizeof(LNode));        if(!L)    return ERROR;  //如果链表空,返回

    if(!s) return ERROR;                        front = L->next;    //其中L设为尾指针

    s->data = e;                                e = front->data;    //front为头指针

    if(!L)     //L为尾指针                      if(front = L)  //只有一个结点

    {                                           {

        L = s;                                       L = NULL;     //链表致为空

        L->next = L;                             }else{       

    }else                                            L->next = front->next;  

    {                                            }

        s->next = L->next;                       free(front);

        L->next = s;                             return OK;

    }                                        }

    return OK;

}

为了方便看入队和出对的对比,把两个操作写在了并列的位置。L为链表的指针同时也是队列的尾指针,可以方便地进行入队和出对的操作。


本文出自 “学海无涯” 博客,请务必保留此出处http://liuzhongyan.blog.51cto.com/8783524/1702642

不带头节点的循环链表的入队和出对操作

原文:http://liuzhongyan.blog.51cto.com/8783524/1702642

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!