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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

C语言查看队头元素,C语言实现循环队列的初始化进队出队读取队头元素判空-1...

發布時間:2025/4/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言查看队头元素,C语言实现循环队列的初始化进队出队读取队头元素判空-1... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目前,處在學習數據結構+ing,由于之前學過了隊列,今天就把自己寫過的代碼做了一些完善分享給大家,希望能夠幫助到有需要的朋友,有不足的地方歡迎大家交流? ??φ(゜▽゜*)?

隊列是另一種限定性的線性表,它只允許在表的一端插入元素,而在另一端刪除元素,所以隊列具有先進先出的特性。

一、系統用到的抽象數據類型定義:

ADT Queue{

數據元素:可以是任意類型的數據,但必須屬于同一個數據對象。

數據關系:隊列中數據元素之間是線性關系。

基本操作:

initQueue(&Q);? ? ? ? ? ? ?//循環隊列初始化

enterQueue(&Q);? ? ? ? ? ? //循環隊列入隊操作

deleteQueue(&Q);????????? //循環隊列出隊操作

isEmpty(&Q);? ? ? ? ? ? ? ? ? //判斷隊列是否為空

getHead(&Q,&x);? ? ? ? ? ? //讀取隊列的隊頭元素 ,指針x指向隊頭元素

}ADT Queue;

二、系統中子程序及功能要求:

1.void initQueue(SeqQueue *Q);

操作前提:Q為未初始化的隊列。

操作結果:將Q初始化為一個空隊列。

2.int enterQueue(SeqQueue *Q,int n);

操作前提:隊列Q已存在。

操作結果:在隊列Q的隊尾插入n。操作成功,返回值為True,否則返回值為False。

3.void deleteQueue(SeqQueue *Q);

操作前提:隊列Q已存在。

操作結果:將隊列Q的隊頭元素出隊。操作成功,返回值為True,否則返回值為

False。

4.int isEmpty(SeqQueue *Q);

操作前提:隊列Q已存在。

操作結果:若隊列為空,則返回True,否則返回False。

5.int getHead(SeqQueue *Q,int *x);

操作前提:隊列Q已存在。

操作結果:取隊列Q的隊頭元素(該元素不出隊),并用x帶回其值。操作成功,

返回值為True,否則返回值為False。

三、代碼實現

/*順序表實現循環隊列的基本操作 (損失一個數組空間)*/

#include#include#define Queue_Size 50 //隊列的最大長度

#define True 1

#define False 0

typedef struct

{

int elem[Queue_Size]; //隊列的元素空間

int front; //頭指針指示器

int rear; //尾指針指示器

}SeqQueue;

void initQueue(SeqQueue *Q); //循環隊列初始化

int enterQueue(SeqQueue *Q,int n); //循環隊列入隊操作

void deleteQueue(SeqQueue *Q); //循環隊列出隊操作

int isEmpty(SeqQueue *Q); //判斷隊列是否為空

int getHead(SeqQueue *Q,int *x); //讀取隊列的隊頭元素 ,指針x指向隊頭元素

int main()

{

SeqQueue Q;

int choice,x;

while(true) //循環隊列操作選擇菜單

{

printf("*****************Please enter your choice*****************\n\n");

printf(" choice 1:Queue initialization\n");

printf(" choice 2:Into the queue\n");

printf(" choice 3:Out of the queue\n");

printf(" choice 4:Determine whether the queue is empty\n");

printf(" choice 5:Get queue head\n");

printf(" choice 0:exit\n\n");

scanf("%d",&choice);

switch(choice)

{

case 1:

initQueue(&Q);

break;

case 2:

int n;

printf("Please enter the number into the queue elements:");

scanf("%d",&n); //讀入存入的隊列元素個數

//三目運算符根據返回值判斷元素是否進隊成功

(enterQueue(&Q,n)==1)?printf("%d個元素依次進隊成功\n",n):printf("%d個元素依次進隊失敗\n",n);

break;

case 3:

deleteQueue(&Q);

break;

case 4: //三目運算符根據返回值判斷隊列是否為空

(isEmpty(&Q)==1)?printf("An empty Queue\n"):printf("Not an empty Queue\n");

break;

case 5: //三目運算符根據返回值判斷隊頭元素是否讀取成功

(getHead(&Q,&x)==False)?printf("An empty Queue error!!!!\n"):printf("Get head successful,隊頭元素為:%d\n",x);

break;

case 0:

exit(0);

break;

default:

printf("ERROR!!\n");

exit(0);

break;

}

}

return 0;

}

void initQueue(SeqQueue *Q)

{ //將 *Q 初始化為一個空的循環隊列

Q->front=Q->rear=0;

}

int enterQueue(SeqQueue *Q,int n)

{ //將元素n入隊

int n1,n2;

printf("Please enter into the queue elements in turn:\n");

for(n1=0;n1rear+1)%Queue_Size==Q->front) return False; //尾指針加1追上頭指針,標志隊列已經滿了

scanf("%d",&n2);

Q->elem[Q->rear]=n2; //元素進隊

Q->rear=(Q->rear+1)%Queue_Size; //重新設置隊尾指針

}

return True; //操作成功

}

void deleteQueue(SeqQueue *Q)

{ //刪除隊列的隊頭元素

int a;

if(Q->front==Q->rear)

{ //隊列為空,刪除失敗

printf("An empty Queue error!!!!\n");

}

else

{

a=Q->elem[Q->front]; //刪除前先讀取隊頭元素

Q->front=(Q->front+1)%Queue_Size; //重新設置隊頭指針

printf("隊頂元素%d出隊成功.\n",a); //操作成功

}

}

int isEmpty(SeqQueue *Q)

{

if(Q->front==Q->rear)

{ //判斷隊列為空,返回True

return True;

}

return False; //否則返回False

}

int getHead(SeqQueue *Q,int *x)

{

if(Q->front==Q->rear)

{ //隊列為空,讀取失敗

return False;

}

else

{

*x=Q->elem[Q->front]; //操作成功

return True;

}

}

總結

以上是生活随笔為你收集整理的C语言查看队头元素,C语言实现循环队列的初始化进队出队读取队头元素判空-1...的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 精品一区二区三区国产 | 成人黄色免费看 | 免费视频亚洲 | 91春色| 天堂中文字幕在线 | 免费毛片在线播放免费 | 久久不卡| 成人一级毛片 | av 日韩 人妻 黑人 综合 无码 | 色无极在线 | 奇米影视久久久 | 国产精品视频一二三区 | 奇米四色网 | 色综合中文字幕 | 欧美日韩亚洲国产精品 | 西西人体做爰大胆gogo | 精品一区二区三 | 国产精品天干天干 | 国产东北女人做受av | 日韩免费一区二区三区 | 久久久噜噜噜www成人 | av资源一区| 久久精品爱 | 奇米成人网| 欧美日韩免费一区 | 久草网视频在线观看 | 377人体粉嫩噜噜噜 www.av黄色 | 欧美成免费 | 日本一品道 | 久草视频观看 | 大又大粗又爽又黄少妇毛片 | 久久婷婷国产麻豆91 | 日韩欧美网 | 日韩欧美成人网 | 噼里啪啦国语版在线观看 | 国产精品成人久久 | 成人免费三级 | 手机在线成人av | 日日夜夜操操 | 国产激情免费 | 麻豆网站在线免费观看 | 图片区视频区小说区 | 国产农村熟妇videos | 成人做爰视频www | 91精品一区二区三区四区 | 黄瓜视频成人 | 日韩欧美亚洲一区 | 免费看h网站| 亚洲69视频 | 日韩在线综合 | 蜜乳av一区 | 人民的名义第二部 | 一级片网址 | 精品国产一二三区 | 欧美国产成人在线 | 纯爱无遮挡h肉动漫在线播放 | 亚洲无码国产精品 | 日韩一区在线免费观看 | 免费a视频在线观看 | 黄色av网站免费在线观看 | av亚洲在线观看 | 欧美色视 | 香蕉伊思人视频 | 嫩操影院 | 野外做受又硬又粗又大视频√ | www久久久天天com | 日韩精品免费一区二区三区 | 成人免费黄色片 | 九一精品国产 | 天天干天天操天天拍 | 久久黄色大片 | 色多多在线观看 | 欧美老熟妇乱xxxxx | av在线黄色 | 秋霞成人av | 先锋影音一区二区三区 | 欧洲性生活片 | 俄罗斯破处 | 成人午夜精品福利免费 | 成人免费一区 | 电影《两个尼姑》免费播放 | 欧美高清视频在线观看 | 精品无码av一区二区三区四区 | 狠狠v欧美v日韩v亚洲ⅴ | 永久免费av无码网站性色av | 久久精品无码专区 | jizz日本在线| 日韩一区二区视频在线 | 成人午夜影视 | 精品在线视频免费 | 欧美在线观看不卡 | 欧美一区 | 亚洲无码久久久久久久 | 亚洲激情黄色 | 超鹏在线视频 | 久久久久人妻精品一区二区三区 | 毛片无码免费无码播放 | 中文字幕人成乱码熟女香港 | 黄色一级片免费播放 |