亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C語言數據結構之判斷循環鏈表空與滿

2020-05-23 13:46:44
字體:
來源:轉載
供稿:網友

C語言數據結構之判斷循環鏈表空與滿

前言:

何時隊列為空?何時為滿?

由于入隊時尾指針向前追趕頭指針,出隊時頭指針向前追趕尾指針,故隊空和隊滿時頭尾指針均相等。因此,我們無法通過front=rear來判斷隊列“空”還是“滿”。

注:先進入的為‘頭',后進入的為‘尾'。

解決此問題的方法至少有三種:

其一是另設一個布爾變量以匹別隊列的空和滿;

其二是少用一個元素的空間,約定入隊前,測試尾指針在循環意義下加1后是否等于頭指針,若相等則認為隊滿(注意:rear所指的單元始終為空);

其三是使用一個計數器記錄隊列中元素的總數(實際上是隊列長度)。

第一種方法沒有實現,下面實現第二種和第三種:

一、少用一個元素空間,約定以“隊列頭指針front在隊尾指針rear的下一個位置上”作為隊列“滿”狀態的標志。即:

  隊空時: front=rear
  隊滿時: (rear+1)%maxsize=front
  front指向隊首元素,rear指向隊尾元素的下一個元素。

 ///////////////////////////////////////// //  // author: kangquan2008@csdn // ///////////////////////////////////////// #include <stdio.h> #include <stdlib.h> #include <stdbool.h>  #define QUEUE_SIZE 10 #define EN_QUEUE 1 #define DE_QUEUE 2 #define EXIT   3  typedef int  Item; typedef struct QUEUE{    Item * item;   int front;   int tear;  }Queue;  int init_queue(Queue * queue) {   queue->item = malloc(QUEUE_SIZE * sizeof(Item));   if(!queue->item)   {     printf("%s/n","Alloc failed,not memory enough");     exit(EXIT_FAILURE);   }    queue->front = queue->tear = 0;    return 1; }  int en_queue(Queue * queue, Item item) {   if((queue->tear+1) % QUEUE_SIZE == queue->front)   {     printf("%s/n","The queue is full");     return -1;   }    queue->item[queue->tear] = item;   queue->tear = (queue->tear + 1) % QUEUE_SIZE;    return 1; }  int de_queue(Queue * queue, Item * item) {   if(queue->front == queue->tear)   {     printf("%s/n","The queue is empty");     return -1;   }    (*item) = queue->item[queue->front];   queue->front = (queue->front + 1) % QUEUE_SIZE;    return 1; }  int destroy_queue(Queue * queue) { free(queue->item); }  int main() {   Queue que;   init_queue(&que);   int elem;   bool flag = true;   while(flag)   {     int choice;     printf("1 for en_queue,2 for de_queue,3 for exit/r/nplease input:");     scanf("%d",&choice);      switch((choice))     {       case EN_QUEUE:         printf("input a num:");         scanf("%d",&elem);         en_queue(&que,elem);         break;       case DE_QUEUE:         if(de_queue(&que,&elem) == 1)           printf("front item is:%d/n",elem);         break;       case EXIT:         flag = false;         break;       default:         printf("error input/n");         break;     }   }    destroy_queue(&que);   return 0; } 

二、 實例代碼:

#include <stdio.h> #include <assert.h> #define QueueSize 100 typedef char datatype; //隊列的數據元素 typedef struct {    int front;    int rear;    int count; //計數器,用來記錄元素個數    datatype data[QueueSize]; //數據內容 }cirqueue; //置空隊 void InitQueue(cirqueue *q) {    q->front = q->rear = 0;    q->count = 0; } //判斷隊滿 int QueueFull(cirqueue *q) {    return (q->count == QueueSize); } //判斷隊空 int QueueEmpty(cirqueue *q) {    return (q->count == 0); } //入隊 void EnQueue(cirqueue *q, datatype x) {    assert(QueueFull(q) == 0); //q滿,終止程序     q->count++;    q->data[q->rear] = x;    q->rear = (q->rear + 1)%QueueSize; //循環隊列設計,防止內存浪費 } //出隊 datatype DeQueue(cirqueue *q) {    datatype temp;     assert(QueueEmpty(q) == 0);//q空,則終止程序,打印錯誤信息     temp = q->data[q->front];    q->count--;    q->front = (q->front + 1)%QueueSize;    return temp; } 

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲毛茸茸少妇高潮呻吟| 国产午夜精品全部视频在线播放| 中文字幕国产精品| 国产在线观看精品| 国产v综合v亚洲欧美久久| 国产精品www| 中文字幕在线成人| 成人观看高清在线观看免费| 国产精品色视频| www.久久色.com| 欧美日韩另类字幕中文| 国产精品亚洲欧美导航| 欧美成人国产va精品日本一级| 中文.日本.精品| 国产综合福利在线| 日韩欧美成人精品| 5278欧美一区二区三区| 91免费综合在线| 久久久久久久久久久久久久久久久久av| 国产视频精品一区二区三区| 中文字幕日韩欧美精品在线观看| 国产精品视频成人| 日韩黄在线观看| 日韩中文理论片| 欧美电影免费观看高清| 91网站在线看| 欧美午夜精品伦理| 91手机视频在线观看| 日韩在线中文视频| 最好看的2019的中文字幕视频| 在线观看视频亚洲| 亚洲福利影片在线| 国产成人avxxxxx在线看| 欧美激情在线观看| 国产精品久久久久久久午夜| 日韩高清欧美高清| 26uuu另类亚洲欧美日本一| 精品毛片三在线观看| 欧美中文在线观看国产| 国产大片精品免费永久看nba| 成人黄色免费网站在线观看| 国产精品免费观看在线| 国精产品一区一区三区有限在线| 欧洲日本亚洲国产区| 亚洲一级免费视频| 91黄色8090| 国产精品久久久久久久久久| 国产成人精品网站| 欧美亚洲视频一区二区| 国产精品美女www| 欧洲美女7788成人免费视频| 色婷婷av一区二区三区久久| 欧美亚洲视频在线观看| 久久久久久久久中文字幕| 久久久91精品国产| 国产日韩一区在线| 亚洲欧洲日本专区| 国产日产欧美a一级在线| 九九热视频这里只有精品| 欧美激情一级精品国产| 亚洲自拍小视频免费观看| 久久久久在线观看| 成人网欧美在线视频| 亚洲人成欧美中文字幕| 日韩欧美国产网站| 欧美性色视频在线| 最近免费中文字幕视频2019| 国产精品久久久久久久久久久久久| 欧美午夜片在线免费观看| 欧美精品少妇videofree| 亚洲欧美综合精品久久成人| 欧美日韩在线一区| 国产精品第二页| 亚洲精品国产综合久久| 中文字幕亚洲字幕| 精品中文字幕在线| 欧美视频精品一区| 日本一区二区在线免费播放| 国产成人精品一区二区在线| 精品国产乱码久久久久久虫虫漫画| 欧美另类极品videosbestfree| 国产视频综合在线| 欧美亚洲一级片| 欧美福利视频网站| 午夜精品在线观看| 精品欧美aⅴ在线网站| 国产91精品青草社区| 国产色婷婷国产综合在线理论片a| 亚洲欧美日韩中文在线| 黑人巨大精品欧美一区二区三区| 日韩av成人在线观看| 欧美整片在线观看| 国产精品黄页免费高清在线观看| 亚洲欧美日韩直播| 亚洲人在线视频| 国产精品第10页| 色偷偷av一区二区三区| 久久久久久久av| 亚洲精品短视频| 久久国产精品99国产精| 欧美理论片在线观看| 亚洲第一国产精品| 91高清免费在线观看| 国产精品久久久久久久9999| 最新国产精品拍自在线播放| 美女精品视频一区| 日本午夜在线亚洲.国产| 在线成人一区二区| 日韩三级成人av网| 欧美视频精品一区| 欧美电影免费观看网站| 日韩av最新在线| 青青草成人在线| 亚洲成人a级网| 久久免费视频这里只有精品| 富二代精品短视频| 久热精品视频在线观看| 亚洲自拍中文字幕| 全亚洲最色的网站在线观看| 精品中文字幕久久久久久| 亚洲已满18点击进入在线看片| 久久久久久国产| 91精品一区二区| 少妇久久久久久| 亚洲人成电影在线观看天堂色| 国产日韩欧美电影在线观看| 欧美成人精品h版在线观看| 亚洲人成人99网站| 97超级碰碰碰久久久| 国产精品爱久久久久久久| 国产精品精品视频一区二区三区| 成人写真福利网| 国产一区二区丝袜高跟鞋图片| 一区二区欧美激情| 性色av一区二区三区| 成人综合国产精品| 日韩精品久久久久久福利| 国产精品国产亚洲伊人久久| 一区二区亚洲欧洲国产日韩| 亚洲第五色综合网| 91在线看www| 精品国产网站地址| 色99之美女主播在线视频| 国产日韩中文字幕在线| 欧美xxxx做受欧美.88| 91精品在线观看视频| 有码中文亚洲精品| 国产91精品久久久久| 亚洲永久在线观看| 国语自产精品视频在线看| 亚洲欧洲日产国码av系列天堂| 日韩欧美精品中文字幕| 久久av在线看| 欧美一级片在线播放| 亚洲精品在线观看www| 欧美成人sm免费视频| 精品久久久久久久久久国产| 亚洲成人黄色在线| 色悠久久久久综合先锋影音下载| 亚洲视屏在线播放| 色偷偷噜噜噜亚洲男人| 国产精品久久av| 亚洲国产毛片完整版| 成人激情电影一区二区|