做旅行网站好网络建设与运维初级
news/
2025/9/27 8:33:55/
文章来源:
做旅行网站好,网络建设与运维初级,嘉兴制作企业网站,谷歌seo知识队列概念队列(Queue)是限定只能在一端插入、另一端删除的线性表。允许删除的一端叫做队头(front),允许插入的一端叫做队尾(rear)#xff0c;没有元素的队列称为“空队列”。队列具有先进先出(FIFO)的特性。普通顺序队列存在的问题在普通顺序队列中,入队的操作就是先将尾指针re…队列概念队列(Queue)是限定只能在一端插入、另一端删除的线性表。允许删除的一端叫做队头(front),允许插入的一端叫做队尾(rear)没有元素的队列称为“空队列”。队列具有先进先出(FIFO)的特性。普通顺序队列存在的问题在普通顺序队列中,入队的操作就是先将尾指针rear右移一个单位然后将元素值赋值给rear单位。出队时则是头指针front后移一个单位。像这样进行了一定数量的入队和出队操作后可能会出现这样的情况尾指针rear已指到数组的最后有一个元素即rearMaxLen-1此时若再数组的前面部分可能还有很多闲置空间即这种溢出并非是真的没有可用的存储空间故称这种溢出现象为“假溢出”。显然必须要解决这一块假溢出的问题否则顺序队列就没有太多使用价值。循环队列循环队列的存储结构头、尾指针都和普通顺序队列相同。不同的只是将队列视为“环状结构”即data[0]为紧接着data[MaxLen-1]的单元为相邻的元素首位成为一个环。结构如下(来自百科)代码实现全局变量定义队列长度static int MaxLen;循环队列基本数据结构的实现static classmyQueue{intfront;intrear;intqueueList[];publicmyQueue() {//TODO Auto-generated constructor stubqueueListnew int[MaxLen];front0;rear0;}}判空函数public booleanisEmpty() {if(frontrear){return true;}return false;}判满函数public booleanisFull(){if(((rear1)%MaxLen)front){return true;}else{return false;}}取队头元素public void queueFront(intgetFront){if(isEmpty()false){getFrontqueueList[(front1)%MaxLen];}else{System.out.println(ERROR:Queue is Empty);return;}}入队public void enQueue(intenData) {if(isFull()false){rear(rear1)%MaxLen;this.queueList[rear]enData;}else{System.out.println(ERROR:Queue is Full);return;}}出队public voidoutQueue() {if(isEmpty()false){front(front1)%MaxLen;}else{System.out.println(ERROR:Queue is Empty);return;}}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/919242.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!