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

教案及课件3栈和队列.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
循环队列条件: 队头、队尾指针加1,可用取模(余数)运算实现。 队头指针进1: front = (front+1) %maxsize; 队尾指针进1: rear = (rear+1) % maxsize; 队列初始化:front = rear = 0; 队空条件:front == rear; 队满条件:(rear+1) % maxsize == front; 小结 队列:队列(queue)是一种只允许在一端进行插入,而在另一端进行删除的线性表,它是一种操作受限的线性表。在表中只允许进行插入的一端称为队尾(rear),只允许进行删除的一端称为队头(front)。队头元素总是最先进队列的,也总是最先出队列;队尾元素总是最后进队列,因而也是最后出队列。因此,队列也被称为“先进先出”表。 队列的顺序存储结构:利用一组地址连续的存储单元依次存放队列中的数据元素,称为队列的顺序存储结构。 队列的链式存储结构:队列的链式存储结构就是用一组任意的存储单元(可以是不连续的)存储队列中的数据元素,这种结构的队列称为链队列。在一个链队列中需设定两个指针(头指针和尾指针)分别指向队列的头和尾。 * 3.5 队列类型的实现 链队列——链式映象 循环队列——顺序映象 * typedef struct QNode {// 结点类型 QElemType data; struct QNode *next; } QNode, *QueuePtr; 链队列——链式映象 a1 ∧ an … Q.front Q.rear * typedef struct { // 链队列类型 QueuePtr front; // 队头指针 QueuePtr rear; // 队尾指针 } LinkQueue; a1 ∧ an … Q.front Q.front Q.rear ∧ 空队列 Q.rear * Status InitQueue (LinkQueue Q) { // 构造一个空队列Q Q.front = Q.rear = new QNode; if (!Q.front) exit (OVERFLOW); //存储分配失败 Q.front-next = NULL; return OK; } * Status EnQueue (LinkQueue Q, QElemType e) { // 插入元素e为Q的新的队尾元素 } a1 ∧ an Q.front Q.rear ∧ e p p = new QNode; if (!p) exit (OVERFLOW); //存储分配失败 p-data = e; p-next = NULL; Q.rear-next = p; Q.rear = p; return OK; * Status DeQueue (LinkQueue Q, QElemType e) { // 若队列不空,则删除Q的队头元素, //用 e 返回其值,并返回OK;否则返回ERROR } if (Q.rear == p) Q.rear = Q.front; a1 ∧ an Q.front Q.rear a2 if (Q.front == Q.rear) return ERROR; p = Q.front-next; e = p-data; Q.front-next = p-next; delete (p); return OK; * #define MAXQSIZE 100 //最大队列长度 typedef struct { QElemType *base; // 动态分配存储空间 int front; // 头指针,若队列不空, // 指向队列头元素 int rear; // 尾指针,若队列不空,指向 // 队列尾元素 的下一个位置 } SqQueue; 循环队列——顺序映象 * Q.rear Q.front Q.front Q.rear J1 J2 J3 Q.front Q.rear J6 J4 J5 队满:Q.front = (Q.rear+1)% maxqsize 队空:Q.front = Q.rear

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档