0°

推荐|数据结构和算法- 链队列

内容预览:
  •      ③以上讨论的是无头结点链队列的基本运算~
  • 和单链表类似,为了简化边界条件的处理,在队头结点前也可附加一个头结...~
  • 部分文章推送时因种种原因未能与原作者联系上,若涉及版权问题,敬请原...~

始发于微信公众号: 程序员小乐

推荐|数据结构和算法- 链队列

分享互联网、技术、情感等干货平台。您还可以向公众号投稿,将自己总结的技术、心得、经验分享给大家。学无止境,不求尽如人意,但求问心无愧。让学习成为一种美、一种习惯。值得爱学习的你去关注,感觉有帮助转发分享让更多的人去关注!点击上方蓝字关注!

1、 链队列的定义 
   队列的链式存储结构简称为链队列。它是限制仅在表头删除和表尾插入的单链表。

2、 链队列的结构类型说明

  注意:
     
增加指向链表上的最后一个结点的尾指针,便于在表尾做插入操作。
     链队列示意图见上图,图中Q为LinkQueue型的指针。

3、 链队列的基本运算
(1) 置空队
      void InitQueue(LinkQueue *Q)
      {
            Q->front=Q->rear=NULL;
      }
(2) 判队空
      intQueueEmpty(LinkQueue *Q)
      {
            return Q->front==NULL&&Q->rear==Null;
            //实际上只须判断队头指针是否为空即可
      }

(3) 入队
       void EnQueue(LinkQueue *Q,DataType x)
       {//将元素x插入链队列尾部
             QueueNode *p=(QueueNode *)malloc(sizeof(QueueNode));//申请新结点
             p->data=x;   p->next=NULL;
             if(QueueEmpty(Q))
                 Q->front=Q->rear=p;  //将x插入空队列
             else { //x插入非空队列的尾
                 Q->rear->next=p;     //*p链到原队尾结点后
                 Q->rear=p;           //队尾指针指向新的尾
              }
        }

(4) 出队
      DataType DeQueue (LinkQueue *Q)
      {
             DataType x;
             QueueNode *p;
             if(QueueEmpty(Q))
                  Error(“Queue underflow”);//下溢
             p=Q->front;                   //指向对头结点
             x=p->data;                    //保存对头结点的数据
             Q->front=p->next;             //将对头结点从链上摘下
             if(Q->rear==p)//原队中只有一个结点,删去后队列变空,此时队头指针已为空
                  Q->rear=NULL;
             free(p);   //释放被删队头结点
             return x;  //返回原队头数据
       }

(5) 取队头元素
       DataType QueueFront(LinkQueue *Q)
       {
             if(QueueEmpty(Q))
                  Error(“Queue if empty.”);
              return Q->front->data;
        }
   注意:
     ①和链栈类似,无须考虑判队满的运算及上溢。
     ②在出队算法中,一般只需修改队头指针。但当原队中只有一个结点时,该结点既是队头也是队尾,故删去此结点时亦需修改尾指针,且删去此结点后队列变空。
     ③以上讨论的是无头结点链队列的基本运算。和单链表类似,为了简化边界条件的处理,在队头结点前也可附加一个头结点,增加头结点的链队列的基本运算。

如果您觉得不错,请别忘了分享到您的朋友圈让更多的人看到!! 您的举手之劳,就是对我最好的支持,非常感谢!

推荐文章(关注公众号查看往期文章):
学习资料(干货汇集)不断更新【更新于2017-2-25】
2017 年初、阿里、腾讯、百度、华为、京东、搜狗和滴滴面试题汇集(更新篇)
如果你喜欢上了一个程序员小伙,献给所有的程序员女友
【QQ技术群】279126311 [满]
【QQ技术群】484572225 [未]

大家可以加群和大牛们一起学习,由于“大牛聚集之地”已满
可以进大牛聚集之地2群,群二维码如下:

推荐|数据结构和算法- 链队列

如果人满了,可以加我的微信,我拉你进二群,我的微信:1733563441(请备注)
看完本文有收获?请转发分享给更多人
关注「杨守乐」,提升编程技能

推荐|数据结构和算法- 链队列

如何关注:

① 长按二维码,选择“识别图中二维码”进行关注。

 点击微信右上角的“+”,会出现“添加朋友”,进入“公众号”,输入公众号的ysle_0313(杨守乐)名字,即可找到。

如果你有好的文章想和大家分享,欢迎投稿,直接向我投递文章链接即可。投稿邮箱:[email protected]/[email protected]
欢迎扫描关注我们的微信公众号ysle_0313,不要错过每一篇干货~

赞助方式如下链接:

http://blog.csdn.net/xiaole0313/article/details/52333666

版权声明:【我们尊重原创。此篇干货,版权属于原作者。部分文章推送时因种种原因未能与原作者联系上,若涉及版权问题,敬请原作者联系我们,立即处理。】

以上就是:推荐|数据结构和算法- 链队列 的全部内容。

本站部分内容来源于互联网和用户投稿,如有侵权请联系我们删除,谢谢。
Email:[email protected]


0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论