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

首頁 > 編程 > C > 正文

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

2020-01-26 13:52:20
字體:
來源:轉載
供稿:網友

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
欧美激情18p| 日韩中文字幕视频在线| 在线国产精品播放| 亚洲国产日韩一区| 秋霞午夜一区二区| 亚洲色图第一页| 亚洲性xxxx| 97视频在线观看视频免费视频| 欧美另类69精品久久久久9999| 91国内产香蕉| 色樱桃影院亚洲精品影院| 欧美视频在线观看 亚洲欧| 欧美午夜片欧美片在线观看| 97视频com| 久久久久久久久久久91| 欧美亚洲成人网| 欧美性xxxx极品高清hd直播| 欧美日韩免费一区| 亚洲男人天堂2019| 伊人激情综合网| 久久久国产一区| 亚洲激情在线观看| 中文字幕亚洲自拍| 欧美xxxx做受欧美.88| 精品夜色国产国偷在线| 最近2019中文免费高清视频观看www99| 97涩涩爰在线观看亚洲| 欧美亚洲激情在线| 成人有码视频在线播放| 日本一区二区三区在线播放| 91人成网站www| 欧美成人精品不卡视频在线观看| 日本一区二三区好的精华液| 欧美日韩美女在线| 中文字幕国产日韩| 欧美国产亚洲精品久久久8v| 日韩a**站在线观看| 欧美激情精品久久久久久变态| 97超碰蝌蚪网人人做人人爽| 一本一道久久a久久精品逆3p| 狠狠色香婷婷久久亚洲精品| 亚洲国产精品专区久久| 色悠悠国产精品| 欧美在线亚洲在线| 亚洲美女性视频| 日韩在线观看高清| 日韩天堂在线视频| 国产精品美女视频网站| 国产日韩在线精品av| 日韩精品视频在线观看网址| 综合136福利视频在线| 国产精品久久久久7777婷婷| 一区二区中文字幕| 国产一区二区三区精品久久久| 久久天天躁夜夜躁狠狠躁2022| 欧美激情一级欧美精品| 亚洲日本成人网| 亚洲国产精品久久91精品| 日韩欧美aaa| 91精品国产99| 国产不卡av在线| 少妇高潮久久77777| 日韩国产高清污视频在线观看| 国产精品日日摸夜夜添夜夜av| 欧美极品少妇xxxxⅹ免费视频| 欧美日韩国产一中文字不卡| 国产精品精品久久久| 国产精品视频精品| 亚洲大尺度美女在线| 欧美亚洲日本网站| 欧美二区在线播放| **欧美日韩vr在线| 精品夜色国产国偷在线| 欧美精品第一页在线播放| 久久视频在线看| 国产精品久久久久久影视| 精品香蕉一区二区三区| 国产精品免费久久久| 国产精品影院在线观看| 欧美一区二区视频97| 久久精品夜夜夜夜夜久久| 亚洲变态欧美另类捆绑| 国产精品欧美亚洲777777| 亚洲欧洲日产国码av系列天堂| 亚洲欧美成人一区二区在线电影| 久久综合久久88| 亚洲欧美中文字幕| 亚洲第一福利网站| 亚洲qvod图片区电影| 亚洲社区在线观看| 亚洲高清久久久久久| 亚洲第一中文字幕| 久久夜色精品国产欧美乱| 欧美电影在线观看完整版| 国产成人精品国内自产拍免费看| 亚洲欧美在线一区| 国产精品免费福利| 91国内在线视频| 日韩欧美中文在线| 国产在线播放不卡| 成人观看高清在线观看免费| 亚洲欧美日韩国产成人| 亚洲999一在线观看www| 91禁国产网站| 欧美在线欧美在线| 91精品国产乱码久久久久久蜜臀| 久久久久亚洲精品成人网小说| 97人人爽人人喊人人模波多| 欧美激情精品久久久久久免费印度| 国产精品av在线| 一本一本久久a久久精品牛牛影视| 国产精品www| 黄网站色欧美视频| 亚洲高清免费观看高清完整版| 日本精品va在线观看| 中文字幕日本精品| 亚洲精品乱码久久久久久金桔影视| 日本一区二区在线免费播放| 欧美日韩国产一区在线| 九九热精品视频在线播放| 欧美日本亚洲视频| 亚洲国产精品电影| 亚洲片av在线| 日韩在线观看你懂的| 91产国在线观看动作片喷水| 亚洲精品福利在线| 一区二区在线免费视频| 国产日韩中文在线| 亚洲自拍av在线| 欧美一区三区三区高中清蜜桃| 九色成人免费视频| 一本色道久久88综合日韩精品| 亚洲人线精品午夜| 高清日韩电视剧大全免费播放在线观看| 国产日本欧美一区二区三区| 亚洲精品久久久久国产| 91久久中文字幕| 日韩精品一区二区三区第95| 亚洲精品免费一区二区三区| 欧美丝袜一区二区三区| 欧美日韩在线观看视频小说| xxxxxxxxx欧美| 福利视频一区二区| 欧美高清视频在线| 精品爽片免费看久久| 国产丝袜一区二区| 欧美日韩中国免费专区在线看| 九九久久精品一区| 91精品国产综合久久香蕉的用户体验| 久久中文字幕国产| 欧美成人午夜激情在线| 亚洲第一精品久久忘忧草社区| 亚洲第一偷拍网| 国产精品69久久| 中文字幕日韩欧美在线| 日韩av一卡二卡| 性欧美办公室18xxxxhd| 国产精品伦子伦免费视频| 欧美成人免费va影院高清| 国产精品网站大全| 国产亚洲精品久久久久久| 一本色道久久88综合亚洲精品ⅰ| 久久久久成人网| 亚洲乱码一区二区|