- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
队列的基本概念
* 3.3 队列一、队列的基本概念 1、队列定义 3、存储结构 4、运算规则 5、实现方式 2、逻辑结构 只能在表的一端进行插入操作,在表的另一端进行删除操作的线性表。 队尾插入 队头删除 与线性表相同,仍为一对一关系。 顺序队列或链队列,以循环顺序队列更常见。 只能在队首和队尾运算,且访问结点时依照先进先出(FIFO)的原则。 关键是掌握入队和出队操作,具体实现依顺序队或链队的不同而不同。 基本操作:入队或出队,建空队列,判队空或队满等操作。 * 队列 (Queue)是仅在表尾进行插入操作,在表头进行删除操作的线性表。它是一种先进先出(FIFO)的线性表。 例如:队列 Q= (a1 , a2 , a3 , ……….,an-1 , an ) 在队尾插入元素称为入队;在队首删除元素称为出队。 当队列中没有数据元素时称为空队列。 队首 队尾 * 二、队列抽象数据类型 数据集合:{a0,a1,…,ai ,…,an-1} ai的数据类型为 DataType 操作集合:(1)QueueInitiate(Q) 初始化队列Q (2)QueueNotEmpty(Q) 队列Q非空否 (3)QueueAppend(Q,x) 入队列 (4)QueueDelete(Q,d) 出队列 (5)QueueGet(Q,d) 取队头数据元素 等 * 三、顺序队列 1、顺序队列 采用顺序存储结构的队列。 2、顺序队列的存储结构 它利用一个一维数组来 存储数据元素,另再设立一 个队头指示器和一个队尾指 示器分别指向当前队头元素 和当前队尾元素。用C语言 定义为: typedef struct { DataType queue[MaxQueueSize]; int rear; int front; }SeqCQueue; a1 a2 a3 data a4 8 7 6 5 4 3 2 1 0 front rear (队尾) (队头) * 具体算法: void QueueInitiate(SeqCQueue *Q) /*初始化顺序循环队列Q*/ { Q-rear = 0; /*定义初始队尾指针下标值*/ Q-front = 0; /*定义初始队头指针下标值*/ Q-count = 0; /*定义初始计数器值*/ } * 算法说明:向循环队列的队尾插入一个元素 分 析: (1) 插入前应当先判断队列是否满? if (Q-count0 Q-rear==Q-front) return 0; (2)插入动作 Q-queue[Q-rear] = x; Q-rear = (Q-rear + 1) % MaxQueueSize; Q-count++; return 1; 2) 入队操作 队列尺寸 * int QueueAppend(SeqCQueue *Q, DataType x) { if(Q-count 0 Q-rear == Q-front) { printf(队列已满无法插入! \n); return 0; } else { Q-queue[Q-rear] = x; Q-rear = (Q-rear + 1) % MaxQueueSize; Q-count++; return 1; } } 入队操作完整算法 * 3)出队操作 算法说明:删除队头元素,返回其值 e 分 析: (1) 在删除前应当判断队列是否空? if(Q-count == 0) return 0; (2)删除动作 m = Q-queue[Q-front]; Q-front = (Q-front + 1) % MaxQueueSize; Q-count--; front指针在元素出队后再加 * int QueueDelete(SeqCQueue *Q, DataType *d) { if(Q-count == 0) { printf(队列已空无数据元素出队列! \n); return 0; } else { *d = Q-queue[Q-front]; Q-front = (Q-front + 1)
您可能关注的文档
- 门窗安装施工方案初稿 (修复的).doc
- 长春版小学三年下编故事.ppt
- 问君能有几多愁 —浅谈婉约词中关于愁绪的栖居.doc
- 闫范进中举.ppt
- 问思导学模式之六步导学法.ppt
- 长沙某志别墅项目营销提案__销售推广方案.ppt
- 问题商品管理.ppt
- 长郡理实班模拟考试物理三.ppt
- 间苯二酚甲醛树脂生产技术及市场行情研究报告.doc
- 长青沙大桥斜拉索汇报7.17.ppt
- 中国多次直拉单晶炉行业市场占有率及投资前景预测分析报告.pdf
- 中国多功能阀门行业市场占有率及投资前景预测分析报告.pdf
- 中国多工位直接成衣打印机行业市场占有率及投资前景预测分析报告.pdf
- 部编版九年级下册语文详细教学计划及教学进度安排.docx
- 宁夏吴忠市同心县四校2024-2025学年高一上学期期末联考试地理试题(解析版).docx
- 中国多点平均温度计行业市场占有率及投资前景预测分析报告.pdf
- 2024年重庆市高考物理试题含答案解析.docx
- 2024年天津市高考政治试题含答案解析.docx
- 2024年天津市高考物理试题含答案解析.docx
- 中国多弹簧泥浆密封行业市场占有率及投资前景预测分析报告.pdf
文档评论(0)