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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

队列_笔记

發布時間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 队列_笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

與棧類似但規則不一樣,棧是先進后出只有一個口,隊列是兩個口規則先進先出一個口只能進,一個口只能出

.h

#define MAX_SIZE 1024//順序隊列結構體 typedef struct SEQQUEUE {void *data[MAX_SIZE];int size; }SeqQueue;class Queue { public:Queue();~Queue();public:SeqQueue* queue;public://入隊void Push_Queue(SeqQueue* queue,void *data);//返回對頭元素void* Front_Queue(SeqQueue* queue);//出隊void Pop_Queue(SeqQueue* queue);//返回隊尾元素void* Back_Queue(SeqQueue* queue);//返回大小int Size_Queue(SeqQueue* queue);//清空void Clear_Queue(SeqQueue* queue);};

.cpp

Queue::Queue() {queue = new SeqQueue();for (int i = 0; i < MAX_SIZE; i++){queue->data[i] = NULL;}queue->size = 0; }Queue::~Queue() {if (queue == NULL){return;}delete queue;}//入隊 void Queue::Push_Queue(SeqQueue* queue, void *data) {if (queue == NULL || data == NULL || queue->size == MAX_SIZE){return;}//數組左邊當做隊頭queue->data[queue->size] = data;queue->size++; }//返回對頭元素 void* Queue::Front_Queue(SeqQueue* queue) {if (queue == NULL || queue->size == 0){return NULL;}return queue->data[0]; }//出隊 void Queue::Pop_Queue(SeqQueue* queue) {if (queue == NULL || queue->size == 0){return ;}//需要移動元素for (int i = 0; i < queue->size -1; i++){queue->data[i] = queue->data[i + 1];}queue->size--; }//返回隊尾元素 void* Queue::Back_Queue(SeqQueue* queue) {if (queue == NULL || queue->size == 0){return NULL;}return queue->data[queue->size -1]; }//返回大小 int Queue::Size_Queue(SeqQueue* queue) {if (queue == NULL ){return -1;}return queue->size; }//清空 void Queue::Clear_Queue(SeqQueue* queue) {if (queue == NULL){return;}queue->size = 0; }

main.cpp

typedef struct PERSON {char name[64];int age; }Person;int main() {Queue* q = new Queue();//創建數據Person p1 = { "p1",10 };Person p2 = { "p2",20 };Person p3 = { "p3",30 };Person p4 = { "p4",40 };Person p5 = { "p5",50 };//數據入隊列q->Push_Queue(q->queue, &p1);q->Push_Queue(q->queue, &p2);q->Push_Queue(q->queue, &p3);q->Push_Queue(q->queue, &p4);q->Push_Queue(q->queue, &p5);//輸出對尾元素Person* BackPerson = (Person*)q->Back_Queue(q->queue);cout << "Name:" << BackPerson->name << " ";cout << "Age:" << BackPerson->age<<" ";cout<< endl<<endl;//輸出while (q->Size_Queue(q->queue)>0){//取出對頭元素Person *p = (Person*)q->Front_Queue(q->queue);cout << "Name:" << p->name << " ";cout << "Age:" << p->age << " ";cout << endl;//彈出元素q->Pop_Queue(q->queue);}return 0; }

總結

以上是生活随笔為你收集整理的队列_笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

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