第五節 Go資料結構之佇列

2022-08-30 02:36:11 字數 1241 閱讀 7219

一、什麼是佇列

資料結構裡的佇列就是模仿現實中的排隊。如上圖中狗狗排隊上廁所,新來的狗狗排到隊伍最後,最前面的狗狗撒完尿走開,後面的跟上。可以看出佇列有兩個特點:

(1) 新來的都排在隊尾;

(2) 最前面的辦理業務後離隊,後面乙個跟上。

根據特點,計算機磚家就歸納以下佇列結構。

佇列簡稱fifo,含義自己體會。

二、佇列的結構

繼續大衛哥的拆卸手。佇列拆成容器和鍊錶,分別用結構和單鏈表實現,如上圖。

三、介面說明及實現

初始化佇列,其實是初始化裡面單鏈表。

func (queue *queue) init()
2、enqueue有尿的小狗狗排隊。

func (queue *queue) enqueue(data object) bool
3、dequeue撒完尿的小狗狗出列。

func (queue *queue) dequeue() object
4、peek時不時偷看隊頭狗狗,這個癖好好特別。

func (queue *queue) peek() object
5、getsize場地有限,隊伍不能太長,得隨時掌握隊伍長度。

func (queue *queue) getsize() uint64
四、小結這裡小結大衛哥不說廢話,和上節一樣,如果用雙向鍊錶或其他結構能否實現佇列?佇列可以應用在順序處理流中,包括事件迴圈,併發處理,操作同步等等。

資料結構第五節

1.棧 stack 是運算受限的線性表,這種線性表上的 插入和刪除運算限定在表的某一端進行,允許進行插入和刪除的一端稱為棧頂,另一端稱為棧底.不含任何資料元素的棧稱為空棧.處於棧頂位置的元素稱為棧頂元素.棧的修改原則是後進先出,因此,棧又稱為後進先出線性表,簡稱後進先出表.棧的插入和刪除運算分別稱為...

函式第五節

coding utf 8 1.定義乙個func name 該函式效果如下。assert func lilei lilei assert func hanmeimei hanmeimei assert func hanmeimei hanmeimei def title name if isinsta...

第五節 字典

字典的表現形式為大括號 dict key必須可hash,必須唯一且必須為不可改變的資料型別 value可存放任意多個值,可修改,可不唯一 無序且查詢速度快 鍵 值 鍵值對 1 dic.keys 返回乙個包含字典所有key的列表 2 dic.values 返回乙個包含字典所有value的列表 3 di...