码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构之 — 链队列

时间:2016-01-21 13:50:11      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

  这次我们来实现队列。队列也是一种极其重要和基础的数据结构,队列的特点是先进先出(First In Frist On,FIFO)。

  正如栈一样,队列也是在计算机系统内应用非常广泛的一种数据结构,比如购票,打印机缓冲等等,现实生活中也有很多队列模型的例子,比如上车,买饭,银行医院叫号....

  队列按照存储结构不同也分为顺序队列和链队。

  我们这次实现链队。

  在这里我们要先说一下顺序队列存在“假溢出”的问题,也就是队列本身并没有满,但是因为不断出队导致游标移动却没有对游标的移动进行任何处理,导致队列似乎已满的错误。

  解决”假溢出“简单的办法是每一次出队都将队列内所有数据都移动一位,但这样的话会导致每一次队列操作的时间复杂度大增,因此最好的办法就是循环队列了,如果有时间我将继续实现循环队列。

 

  现在我们先总结一下队列应该有的操作:

  1.初始化队列(一般在这一步生成一个队列)

  2.求队长

  3.入队

  4.出队

  5.读取队头元素(与出队的区别在于本操作不删除队头元素)

  6.判队空(这一步我们不单独实现,而是通过判断队长来实现----空队队长为0)

  7.遍历队列

  8.清空队列

  9.销毁队列

我们依然只实现部分操作

 

  定义队列

 #define DATATYPE int
  /* defined queue struction */
  struct queue_body{
          DATATYPE data;
          struct queue next;
  }l_queue;
  
  struct queue{
          struct queue *front
          struct queue *rear;
  }link_queue;

 

  1.初始化队列

 

 

  

 

 

  

 

 

  

---恢复内容结束---

数据结构之 — 链队列

标签:

原文地址:http://www.cnblogs.com/zhangte/p/5147823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!