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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

第七周实践项目4 队列数组

發(fā)布時間:2025/4/16 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第七周实践项目4 队列数组 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

 創(chuàng)建10個隊列,分別編號為0-9(處理為隊列數(shù)組,編號即下標)。輸入若干個正整數(shù),以數(shù)字0作為結(jié)束。設(shè)輸入的值為x,其個位數(shù)字的大小為i,則將x插入到編號為i的隊列中。最后輸出所有的非空隊列。

  要求將隊列處理成鏈式隊列,使用鏈式隊列算法庫中定義的數(shù)據(jù)類型及算法,程序中只包括一個函數(shù)(main函數(shù)),入隊和出隊等操作直接在main函數(shù)中調(diào)用即可。

  設(shè)程序運行時輸入:70 59 90 72 67 88 80 64 29 97 18 83 40 13 0

  輸出結(jié)果如下圖:

/* *Copyright (c) 2017,煙臺大學(xué)計算機與控制工程學(xué)院 *All rights reserved. *文件名稱:項目3- 創(chuàng)建10個隊列,分別編號為0-9(處理為隊列數(shù)組,編號即下標)。輸入若干個正整數(shù),以數(shù)字0作為結(jié)束。 設(shè)輸入的值為x,其個位數(shù)字的大小為i,則將x插入到編號為i的隊列中。最后輸出所有的非空隊列。 *作 者:邵雪源 *完成日期:2017年12月13日 *版 本 號:v1.0 */ #include <stdio.h> #include <malloc.h> #define MaxSize 5 #define N 10 typedef int ElemType; typedef struct qnode {ElemType data;struct qnode *next; } QNode; //鏈隊數(shù)據(jù)結(jié)點類型定義 typedef struct {QNode *front;QNode *rear; } LiQueue; //鏈隊類型定義 void InitQueue(LiQueue *&q) //初始化鏈隊 {q=(LiQueue *)malloc(sizeof(LiQueue));q->front=q->rear=NULL; } void enQueue(LiQueue *&q,ElemType e) //入隊 {QNode *p;p=(QNode *)malloc(sizeof(QNode));p->data=e;p->next=NULL;if (q->rear==NULL) //若鏈隊為空,則新節(jié)點是隊首節(jié)點又是隊尾節(jié)點q->front=q->rear=p;else{q->rear->next=p; //將*p節(jié)點鏈到隊尾,并將rear指向它q->rear=p;} } bool QueueEmpty(LiQueue *q) //判斷鏈隊是否為空 {return(q->rear==NULL); } int QueueLength(LiQueue *q) //返回隊列中數(shù)據(jù)元素個數(shù) {int n=0;QNode *p=q->front;while (p!=NULL){n++;p=p->next;}return(n); } bool deQueue(LiQueue *&q,ElemType &e) //出隊 {QNode *t;if (q->rear==NULL) //隊列為空return false;t=q->front; //t指向第一個數(shù)據(jù)節(jié)點if (q->front==q->rear) //隊列中只有一個節(jié)點時q->front=q->rear=NULL;else //隊列中有多個節(jié)點時q->front=q->front->next;e=t->data;free(t);return true; } void DestroyQueue(LiQueue *&q) //銷毀鏈隊 {QNode *p=q->front,*r; //p指向隊頭數(shù)據(jù)節(jié)點if (p!=NULL) //釋放數(shù)據(jù)節(jié)點占用空間{r=p->next;while (r!=NULL){free(p);p=r;r=p->next;}}free(p);free(q); //釋放鏈隊節(jié)點占用空間 } int main() {int i, a;LiQueue *qu[N]; //定義隊列指針數(shù)組for (i=0; i<N; i++)InitQueue(qu[i]); //初始化隊列//為隊列中加入值printf("輸入若干正整數(shù),以0結(jié)束: ");scanf("%d", &a);while(a){enQueue(qu[a%10], a);scanf("%d", &a);}//輸出各個隊列printf("按個位數(shù)整理到各個隊列中后,各隊列出隊的結(jié)果是: \n");for (i=0; i<N; i++){printf("qu[%d]: ", i);while(!QueueEmpty(qu[i])){deQueue(qu[i], a);printf("%d ", a);}printf("\n");}//銷毀各個隊列for (i=0; i<N; i++)DestroyQueue(qu[i]);return 0;}

總結(jié)

以上是生活随笔為你收集整理的第七周实践项目4 队列数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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