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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

数据结构【队列专题】

發布時間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构【队列专题】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先進先出(First In First Out,FIFO)的線性序列,成為“隊列”。

隊列也是一種線性表,只不過它是操作受限的線性表,只能在兩端操作:

一端進,一端出。進的一端成為隊尾(rear),出的一端稱為隊頭(front)。隊列可以用順序存儲,也可以用鏈式存儲。

循環隊列?

#include <iostream> using namespace std; #define Maxsize 100typedef struct SqQueue {int *base; //基地址int front, rear; //頭指針,尾指針 }SqQueue;//循環隊列的初始化 bool InitQueue(SqQueue &Q)//注意使用引用參數,否則出了函數,其改變無效 {Q.base = new int[Maxsize];//分配空間if (!Q.base) return false;Q.front = Q.rear = 0; //頭指針和尾指針置為零,隊列為空return true; }//循環隊列的入隊 bool EnQueue(SqQueue &Q, int e)//將元素e放入Q的隊尾 {if ((Q.rear + 1) % Maxsize == Q.front) //尾指針后移一位等于頭指針,表明隊滿return false;Q.base[Q.rear] = e; //新元素插入隊尾Q.rear = (Q.rear + 1) % Maxsize; //隊尾指針加1return true; }//循環隊列的出隊 bool DeQueue(SqQueue &Q, int &e) //刪除Q的隊頭元素,用e返回其值 {if (Q.front == Q.rear)return false; //隊空e = Q.base[Q.front]; //保存隊頭元素Q.front = (Q.front + 1) % Maxsize; //隊頭指針加1return true; }//取循環隊列的隊頭元素 int GetHead(SqQueue Q)//返回Q的隊頭元素,不修改隊頭指針 {if (Q.front != Q.rear) //隊列非空return Q.base[Q.front];return -1; } //循環隊列的長度 int QueueLength(SqQueue Q) {return (Q.rear - Q.front + Maxsize) % Maxsize; }int main() {SqQueue Q;int n, x;InitQueue(Q);//初始化隊列(一定要初始化,否則后面存儲出錯)cout << "請輸入元素個數n:" << endl;cin >> n;cout << "請依次輸入n個整型數,依次入隊:" << endl;while (n--){cin >> x;EnQueue(Q, x);//入隊}cout << endl;cout << "隊列內元素個數,即長度:" << QueueLength(Q) << endl;cout << "隊頭元素:" << GetHead(Q) << endl;cout << "元素依次出隊:" << endl;while (true)//如果棧不空,則依次出棧{if (DeQueue(Q, x))cout << x << "\t";//出隊元素elsebreak;}cout << endl;cout << "隊列內元素個數,即長度:" << QueueLength(Q) << endl;return 0; }

單調隊列

//常見模型:找出滑動窗口中的最大值/最小值int hh = 0, tt = -1;for (int i = 0; i < n; i ++ ){while (hh <= tt && check_out(q[hh])) hh ++ ; // 判斷隊頭是否滑出窗口while (hh <= tt && check(q[tt], i)) tt -- ;q[ ++ tt] = i;}

詳解單調隊列算法

總結

以上是生活随笔為你收集整理的数据结构【队列专题】的全部內容,希望文章能夠幫你解決所遇到的問題。

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