日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数组实现队列

發布時間:2023/12/13 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数组实现队列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數組實現隊列結構:

相對棧結構要難搞一些,隊列的先進先出的,需要一個數組和三個變量,size記錄已經進來了多少個元素,不需要其它萌新看不懂的知識。

觸底反彈,頭尾追逐的感覺。

循環使用數組。

具體解釋一下觸底反彈:當我們的隊頭已經到了數組的底,我們就把對頭設為數組的第一個元素,對于隊尾也是一樣。實現了對數組的循環使用。

#include<stdio.h> #include<stdbool.h> #define maxsize 10 typedef int datatype; typedef struct queue {datatype arr[maxsize];int a,b,size;//頭、尾、數量 }queue; queue s; void init()//初始化 {s.a=0;s.b=0;s.size=0; } int Empty()//判空 {if(s.size==0)return 1;return 0; } int full()//判滿 {if(s.size==maxsize)return 1;return 0; } datatype peek()//查看隊頭 {if(s.size!=0)return s.arr[s.a];printf("queue is null\n"); } datatype poll()//彈出隊頭 {int temp=s.a;if(s.size!=0){s.size--;s.a=s.a==maxsize-1? 0 :s.a+1;//觸底反彈return s.arr[temp];}printf("queue is null\n"); } int push(datatype obj)//放入隊尾 {if(s.size!=maxsize){s.size++;s.arr[s.b]=obj;s.b=s.b==maxsize-1? 0 : s.b+1;//觸底反彈return 1;}printf("queue is full\n");return 0; } //測試 int main() {int i;init();if(Empty())printf("null\n");for(i=0;i<20;i++)push(i);while(!Empty()){printf("%d\n",poll());}printf("%d",poll()); }

?

總結

以上是生活随笔為你收集整理的数组实现队列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。