定義:佇列——先進先出原則,是一種操作受限的線性表,指只允許在表的一端進行插入操作的資料結構,具有「先進先出」的特點。
比如我們去電影院排隊買票,第乙個進入排隊序列的都是第乙個買到票離開佇列的人,而最後進入排隊序列排隊的都是最後買到票的。
佇列分為:
①、單向佇列(queue):只能在一端插入資料,另一端刪除資料。
②、雙向佇列(deque):每一端都可以進行插入資料和刪除資料操作。
在此我們用的是單向佇列的思想,以一維陣列的形式展現
解密qq號,規則如下:首先將第1個數刪除,緊接著將第2個數放到這串數的末尾,在將第3個數刪除並將第4個數放到這串數的末尾。。。。直到剩下最後乙個數,將最後乙個數也刪除。按照剛才刪除的順序輸出數連在一起就是正確的qq號。
1.需要一維陣列儲存這一串數字 int q,並且初始化。
2.在陣列中刪除乙個數,最簡單的方法就是把後面的數往前挪動
3.引用整型變數head,tail;刪除是:head++,在末尾新增資料:q[tail]=num;tail++;
4.當head=tail,陣列為空。
**如下
#include
using
namespace std;
intmain()
;int head=0;
int tail=9;
while
(headreturn0;
}
使用結構體
#include
using
namespace std;
const
int n=
10010
;struct queue
;int
main()
while
(q.headreturn0;
}
簡單易懂的udp
udp 是一種簡單傳輸協議,實現簡單,占用系統資源少 客戶端服務端 coding utf 8 import time from socket import 建立簡單的udp服務端 建立套接字 soc socket af inet,sock dgram 設定本地位址 local addr 50000 ...
簡單易懂的BFS
bfs從起點開始,優先搜尋離起點最近的點,然後由這個最近的點擴充套件其他稍近的點,這樣一層一層的擴充套件,就像水波擴散一樣。bfs需要借助佇列來實現 初始的時候把起始點放入佇列中,並標記起點訪問 如果佇列不為空,從佇列中取出乙個元素x,否則演算法結束 訪問和x相連的所有點v,如果v沒有被訪問,把v入...
C 實現優先佇列的簡單例項
c 實現優先佇列的簡單例項 優先佇列類模版實現 buildmaxheap.h標頭檔案 include using namespace std define left i i 2 1 define right i i 2 2 define parent i i 1 2 void max heapify...