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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

第7周实践项目2 队列的链式存储结构及其基本运算的实现

發(fā)布時(shí)間:2025/4/16 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第7周实践项目2 队列的链式存储结构及其基本运算的实现 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
liqueue.cpp#include <stdio.h> #include <malloc.h> #include "liqueue.h" void InitQueue(LiQueue *&q) //初始化鏈隊(duì) {q=(LiQueue*)malloc(sizeof(LiQueue));q->front=q->rear=NULL; } void DestroyQueue(LiQueue *&q) //銷毀鏈隊(duì) {QNode *pre=q->front,*p;if(pre){p=pre->next;while(p){free(pre);pre=p;p=p->next;}free(pre);}free(q); } bool QueueEmpty(LiQueue *q) //判斷鏈隊(duì)是否為空 {return (q->rear==NULL); } int QueueLength(LiQueue *q) //返回隊(duì)列中數(shù)據(jù)元素個(gè)數(shù) {int n=0;QNode *p=q->front;while(p){++n;p=p->next;}return n; } void enQueue(LiQueue *&q,ElemType e) //入隊(duì)(考慮是否為空隊(duì)和非空隊(duì)的情況來寫) {QNode *p;p=(QNode *)malloc(sizeof(QNode));p->data=e;p->next=NULL;if(q->rear==NULL)q->front=q->rear=p;else{q->rear->next=p;q->rear=p;} } bool deQueue(LiQueue *&q,ElemType &e) //出隊(duì)(考慮空隊(duì),只有一個(gè)數(shù)據(jù)節(jié)點(diǎn),有多個(gè)節(jié)點(diǎn)以上,這三種情況) {QNode *t;if(q->rear==NULL)return false;t=q->front;if(q->front==q->rear)q->front=q->rear=NULL;elseq->front=q->front->next;e=t->data;free(t);return true; } liqueue.h #ifndef LIQUEUE_H_INCLUDED #define LIQUEUE_H_INCLUDED typedef char ElemType; typedef struct qnode {ElemType data;struct qnode *next; } QNode; //鏈隊(duì)數(shù)據(jù)結(jié)點(diǎn)類型定義 typedef struct {QNode *front;QNode *rear; } LiQueue; //鏈隊(duì)類型定義 void InitQueue(LiQueue *&q); //初始化鏈隊(duì) void DestroyQueue(LiQueue *&q); //銷毀鏈隊(duì) bool QueueEmpty(LiQueue *q); //判斷鏈隊(duì)是否為空 int QueueLength(LiQueue *q); //返回隊(duì)列中數(shù)據(jù)元素個(gè)數(shù) void enQueue(LiQueue *&q,ElemType e); //入隊(duì) bool deQueue(LiQueue *&q,ElemType &e); //出隊(duì) #endif // LIQUEUE_H_INCLUDED main.cpp#include <stdio.h> #include "liqueue.h" int main() {ElemType e;LiQueue *q;printf("(1)初始化鏈隊(duì)q\n");InitQueue(q);printf("(2)依次進(jìn)鏈隊(duì)元素a,b,c\n");enQueue(q,'a');enQueue(q,'b');enQueue(q,'c');printf("(3)鏈隊(duì)為%s\n",(QueueEmpty(q)?"空":"非空"));if (deQueue(q,e)==0)printf("隊(duì)空,不能出隊(duì)\n");elseprintf("(4)出隊(duì)一個(gè)元素%c\n",e);printf("(5)鏈隊(duì)q的元素個(gè)數(shù):%d\n",QueueLength(q));printf("(6)依次進(jìn)鏈隊(duì)元素d,e,f\n");enQueue(q,'d');enQueue(q,'e');enQueue(q,'f');printf("(7)鏈隊(duì)q的元素個(gè)數(shù):%d\n",QueueLength(q));printf("(8)出鏈隊(duì)序列:");while (!QueueEmpty(q)){deQueue(q,e);printf("%c ",e);}printf("\n");printf("(9)釋放鏈隊(duì)\n");DestroyQueue(q);return 0; }

總結(jié)

以上是生活随笔為你收集整理的第7周实践项目2 队列的链式存储结构及其基本运算的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。