网站大量收购独家精品文档,联系QQ:2885784924

5.2 队列数据结构与算法.pdf

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计与问题求解 ——队列 队列 在日常生活中,购物交款时,总会遇到排队的问题,在排队时 要遵守的原则是 后来的人只能排在队伍的后面(增加元素 ) 排在前面的人得到服务后就可以离开了(删除 ) 即:先进来的先出去 队列  队列 (Queue )  只能在表的一端进行插入操作、在另一端进行删除操作的特殊线性表  允许删除元素的一端称为队头 ,允许插入元素的一端称为队尾  特点  先进先出 (FIFO )或后进后出 (LILO ) 队列的主要操作  队列的主要操作  判断队列是否满  判断队列是否为空  入队 :在队尾插入元素  出队 :在队头删除元素  取队头元素 队列的主要应用 缓存 打印队列 发送手机短信 发送电子邮件 队列 循环队列  将队列的头尾相连形成一个圆圈  当队尾和队头重叠时,队列为空还是满呢?  约定:当队头和队尾相等时,队空。当队尾 加1后等于队头时,队满 队列的定义 const int MAX=100; struct SqQueue{ int data[MAX]; // 存放元素的数组 int front; // 队头指针 int rear; // 队尾指针 }; SqQueue Q; // 定义队列q Q.front=Q.rear=0; // 指针初始化 入队 void EnQueue(SqQueue Q , ElemType x) { if((Q.rear+1)% MAX == Q.front) cout队列已满; else { Q.rear = (Q.rear+1)% MAX; Q.data[Q.rear]=x; } } 出队 ElemType DeQueue(SqQueue Q) { if(Q.rear==Q.front) cout队列已空; else { Q.front = (Q.front +1)% MAX; } return Q.data[Q.front]; } 取队头元素 ElemType GetHead(SqQueue Q) { int i; if(Q.rear==Q.front) cout队列已空; else { int i=(Q.front +1)% MAX; } return Q.data[i]; } 链式队列 链式队列的定义 struct QNode { ElemType data; struct QNode *next; }; struct LinkQueue { QNode *front; // 队头指针 QNode *rear; // 队尾指针 }; 链式队列初始化 void InitQueue(LinkQueue Q) { Q.front = new QNode; //建立头结

文档评论(0)

恬淡虚无 + 关注
实名认证
内容提供者

学高为师,身正为范.师者,传道授业解惑也。做一个有理想,有道德,有思想,有文化,有信念的人。 学无止境:活到老,学到老!有缘学习更多关注桃报:奉献教育,点店铺。

1亿VIP精品文档

相关文档