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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

链队列的建立、判空、入队、出队、求长、访头、清空和销毁

發布時間:2025/4/16 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 链队列的建立、判空、入队、出队、求长、访头、清空和销毁 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include<iostream> using namespace std;typedef struct node {int data;struct node *next; }Node;//頭指針和尾指針 typedef struct {Node *front;Node *rear; }Queue;void initQueue(Queue &Q) {Q.front = Q.rear = new Node;Q.front->next = NULL; }bool isEmptyQueue(Queue &Q) {if (NULL == Q.front) //此時鏈隊列被銷毀{cout << "鏈隊列不存在." << endl;exit(1);}if (Q.rear == Q.front)//此時鏈隊列為空return true;return false; }void enterQueue(Queue &Q, int element) {Node *p = new Node;p->next = NULL;p->data = element;Q.rear->next = p;Q.rear = p; }int deQueue(Queue &Q) {int outElement;if (isEmptyQueue(Q))exit(1);Node *p = Q.front->next;outElement = p->data;Q.front->next = p->next;if (Q.rear == p) //需要特殊處理Q.rear = Q.front;delete p;return outElement; }int getLength(Queue &Q) {Node *p1 = Q.front;Node *p2 = Q.rear;int length = 0;while (p1 != p2){p1 = p1->next;length++;}return length; }int getHead(Queue &Q) {if (isEmptyQueue(Q))exit(1);return Q.front->next->data; }void clearQueue(Queue &Q) {while (!isEmptyQueue(Q))deQueue(Q); }void destroyQueue(Queue &Q) {clearQueue(Q);delete Q.front;Q.front = Q.rear = NULL; }int main() {Queue Q;initQueue(Q);cout << getLength(Q) << endl;int i;for (i = 1; i <= 10; i++)enterQueue(Q, i);cout << getHead(Q) << endl;cout << getLength(Q) << endl;while (!isEmptyQueue(Q))cout << deQueue(Q) << " ";cout << endl;if (isEmptyQueue(Q))cout << "yes" << endl;elsecout << "no" << endl;destroyQueue(Q);if (isEmptyQueue(Q))cout << "yes" << endl;elsecout << "no" << endl;system("pause");return 0; }

總結

以上是生活随笔為你收集整理的链队列的建立、判空、入队、出队、求长、访头、清空和销毁的全部內容,希望文章能夠幫你解決所遇到的問題。

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