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

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

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

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

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
欧美最顶级丰满的aⅴ艳星| 欧美成人免费全部| 国产美女精品免费电影| 日本一本a高清免费不卡| 日韩免费在线视频| 欧美裸体xxxx极品少妇软件| 亚洲成成品网站| 国产精品久久久久9999| 日本午夜在线亚洲.国产| 成人国内精品久久久久一区| 狠狠躁18三区二区一区| 亚洲欧美在线看| 日韩欧美国产黄色| 亚洲аv电影天堂网| 国产欧美精品在线| 国产一区二区美女视频| 欧美电影免费观看高清| 久久久久久久久综合| 久久综合免费视频影院| www.欧美视频| 亚洲一区二区在线播放| 亚洲精品国精品久久99热一| 欧美日本中文字幕| 色先锋资源久久综合5566| 亚洲视频在线观看网站| 青青久久aⅴ北条麻妃| 国产精品久久久一区| 日韩中文字幕网| 午夜精品美女自拍福到在线| 狠狠躁夜夜躁人人爽天天天天97| 日本91av在线播放| 91av视频在线播放| 日韩精品一区二区三区第95| 欧美日韩国产va另类| 精品福利一区二区| 色99之美女主播在线视频| 日韩av最新在线| 国产精品自在线| 欧美性色视频在线| 高清视频欧美一级| 久久国产精品免费视频| 欧美激情网友自拍| 国产精品入口免费视频一| 在线成人免费网站| 久久久视频在线| 国产精品一区二区女厕厕| 国产精品视频久久| 国产精品爱啪在线线免费观看| 7777精品久久久久久| 国产成人一区三区| 亚洲黄色av女优在线观看| 久久久久久久久久国产| 国内精品视频久久| 日韩中文字幕免费视频| 国产91色在线播放| 欧美激情一区二区三区在线视频观看| 欧美在线一区二区三区四| 国产精品va在线播放| 亚洲美女激情视频| 欧美日韩国产第一页| 亚洲黄页视频免费观看| 欧美性猛交xxxx乱大交蜜桃| 91久久综合亚洲鲁鲁五月天| 97人洗澡人人免费公开视频碰碰碰| 国产精品丝袜视频| 亚洲精品成人久久电影| 91成人性视频| 狠狠色狠色综合曰曰| 一区二区成人精品| 91精品国产91| 韩国美女主播一区| 一区二区三区动漫| 成人黄色午夜影院| 91欧美日韩一区| 日韩av理论片| 日本高清久久天堂| 成人乱人伦精品视频在线观看| 91chinesevideo永久地址| 国产精品视频网址| 日韩在线观看免费高清| 精品久久久久久久久久ntr影视| 亚洲国产成人精品久久久国产成人一区| 日韩暖暖在线视频| 国产精品流白浆视频| 国产91露脸中文字幕在线| 国产精品久久77777| 亚洲区中文字幕| 国产suv精品一区二区三区88区| 久久手机精品视频| 久久韩剧网电视剧| 国外成人在线直播| 国产精品视频久| 国产成人精品在线观看| 国产精品欧美激情| 国产精自产拍久久久久久| 国产日韩精品在线| 91色琪琪电影亚洲精品久久| 午夜免费在线观看精品视频| 欧美一乱一性一交一视频| 精品福利免费观看| 亚洲午夜精品久久久久久性色| 欧美主播福利视频| 国产精品精品国产| 亚洲成人久久久| 亚洲3p在线观看| xvideos成人免费中文版| 久久久久亚洲精品国产| 久久精品最新地址| 国产精品日韩在线| 日韩精品视频免费专区在线播放| 亚洲一级一级97网| 亚洲爱爱爱爱爱| 最近日韩中文字幕中文| 国产欧美一区二区三区四区| 国产一区二区欧美日韩| 亚洲性夜色噜噜噜7777| 欧美高跟鞋交xxxxxhd| 国产亚洲欧洲高清| 欧美激情视频免费观看| 热久久这里只有| 91在线免费看网站| 欧美精品videofree1080p| 国产精品久久久av久久久| 久久影视电视剧免费网站| 久久影院在线观看| 精品在线小视频| 国产精品88a∨| 一区二区三区久久精品| 国产精品免费久久久久影院| 青青久久av北条麻妃黑人| 久久久久久亚洲精品中文字幕| 亚洲激情小视频| 亚洲高清福利视频| www.日本久久久久com.| 91中文字幕在线| 97超级碰在线看视频免费在线看| 日韩欧美在线免费| 秋霞av国产精品一区| 亚洲嫩模很污视频| 色天天综合狠狠色| 国产精品视频公开费视频| 国产精自产拍久久久久久| 在线看福利67194| 一区二区三区回区在观看免费视频| 精品福利在线观看| 最新69国产成人精品视频免费| 不卡在线观看电视剧完整版| 日韩视频中文字幕| 欧美性xxxxx极品娇小| 久久久久久久久久久人体| 国产成人亚洲精品| 日韩精品视频在线| 永久免费精品影视网站| 日韩成人在线免费观看| 久久精品国产成人精品| 92看片淫黄大片欧美看国产片| 亚洲欧美制服丝袜| 久久影院资源网| 国产精品劲爆视频| 正在播放国产一区| 91高清免费在线观看| 亚洲成色777777在线观看影院| 亚洲欧美日韩国产成人| 国产91精品最新在线播放|