- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构_队列,队列,数据结构,八皇后问题,数据结构栈,数据结构循环队列,数据结构栈和队列,数据结构堆,数据结构链表,优先队列数据结构
例子:电话号码 向计算机专业的同学要电话号码,他(她)不会直接给你的,原因你懂的。 他(她)会告诉你一串加密过的数字,同时告诉你解密的规则。规则是这样的:首先将第1个数删除,紧接着将第2个数放到这串数的末尾,再将第3个数删除并将第4个数放到这串数的末尾…,直到剩下最后一个数,把这个数也删除。按删除的顺序将删除的数连在一起,就是电话号了。 例如1. 队列的定义 队列(queue)是一种操作受限的线性表,它的所有插入都在表的一端进行,所有的删除都在表的另一端进行。 例子 食堂窗口 进程调度 队列的特性:先进先出。栈也称作后进先出表(First In First Out,FIFO)。 术语 队头(front) :进行删除的一端; 队尾(rear) :进行插入的一端; 空队列:没有元素的队列。 插入:入队 删除:出队 队列的基本操作 (1)队列初始化 (2)入队 (插入) (3)出队(删除) (4)读取队首元素 (5)判断队列是否空 (6)确定队列中元素个数 (7)置空队列 2.队列的顺序存储 按顺序存储方式存放队列元素,称为顺序队。 存放队列元素的数组:T qlist[MaxQSize] front 队首元素的下标 rear 队尾元素的下标加 1 队列空: front == rear 队列满: rear == MaxQSize 插入队尾元素: rear=rear+1 删除队首元素:front=front+1 假溢出 循环队列 插入元素 : rear顺时针移动一位 删除元素:front顺时针移动一位 循环队列 front指定队首位置,删除一个元素就将front顺 时针移动一位; rear指向元素要插入的位置,插入一个元素就将rear顺时针移动一位; count存放队列中元素的个数,当count等于MaxQSize时,不可再向队列中插入元素。 队空:count=0 队满:count= MaxQSize void QInsert ( const T item ) ; // 向队尾插入元素item void QDelete ( T item ) ; // 删除队首元素并将该元素值保存至item T QFront () const ; // 存取队首元素值 bool isEmpty () const { return count = = 0 ; // 检测队列是否为空 bool isFull () const { return count = = Size ; } // 检测队列是否为满 void QClear () {front = rear = count = 0 ;}// 清空队列 }; 插入算法ADL描述 算法QInsert (A, item) // 在队列A中将元素item插入队尾 QI1. [队列满?] IF count?size THEN (PRINT“队列已满无法插入”. RETURN. ) QI2. [元素插入] A[rear] ?item. // 将新元素插入队尾 QI3. [更新] rear?MOD(rear?1, size). // 更新队尾下标 count?count?1. // 更新队列长度 ? C++实现 template class T void AQueueT::QInsert ( const T item ) { QArray[rear]=item; rear=(rear+1)%Size; } 删除算法ADL描述 算法QDelete (A. item) // 删除队列A的队首元素,并将其元素值赋给变量item QD1. [队列空?] IF count?0 THEN (PRINT “队列空无法删除”. RETURN. ) QD2. [出队] item ?A[front]. // 将队首元素保存至item QD3. [更新] front?MOD(front?1, size). // 更新队首元素下标 count?count -1. // 更新队列长度 ? C++实现 template class T void AQueueT::QDelete (T item ) { item=QArray[front]; front=(front+1)%Size; } 取队首算法ADL描述 算法QFront (A. item) // 读取队列A的队首元素值,并将其赋给变量item QF1. [队列空?] IF count?0 THEN (PRINT “队列空无法读取”.
您可能关注的文档
- 对2.4GHz无线数传模块nRF2401A的使用及测试.doc
- 小儿哮喘的中医药贴敷治疗.ppt
- 小学六年级下册第二单元测评.doc
- 小型车15模拟风洞试验室设计.doc
- 小学科学六上《建高塔》课件.ppt
- 小学新课标英语教程body part,stationary toy and shape课本.doc
- 小学英语单词分类记忆.doc
- 小学英语4A试卷录音材料及答案.doc
- 小学英语5B第二单元题库.doc
- 山东专升本考试英语专业翻译辅导材料.doc
- 2025年吉林省中考地理试卷(含解析).pdf
- 2025年陕西省中考道德与法治试卷(含解析).docx
- 第四单元比应用专项5篇-2025年五升六年级数学暑假衔接应用专项(解析版)人教版.docx
- 07【小升初专项训练】 繁分数.docx
- 第四单元小数的意义和性质应用专项14篇-2025年四升五年级数学暑假衔接应用专项(原卷版)人教版.docx
- 第四单元小数的意义和性质应用专项14篇-2025年四升五年级数学暑假衔接应用专项(解析版)人教版.docx
- 不做“扫兴式父母”,构建良好亲子关系.docx
- 控制迷局:父母过度干预对青少年心理发展的深层影响.docx
- 零散建筑工程施工方案(3篇).docx
- 青蓝工程公开课实施方案(3篇).docx
文档评论(0)