資料結構的知識小結 簡述堆疊和佇列

2021-10-05 20:55:17 字數 1394 閱讀 8463

圖中的push(s,e)表示將元素e進棧,這個是棧的基本運算之一。在進行元素e新增的時候先判斷top棧頂是否已經滿足棧滿條件,如果還沒有就進行新增。這是入棧設計的基本思路。

有進就有出,既然我們了解入棧,那齣棧的設計思路也就大同小異,和入棧一樣,出棧也有條件:top = -1;**如下

pop(s)是堆疊的出棧基本運算,刪除儲存空間裡面的棧頂元素。首先判斷堆疊裡面是否為空,如果不為空就先將元素備份起來,然後再進行棧頂元素減少top–。

以上就簡單介紹了順序結構堆疊的入棧和出棧的基本運算。還有其它一些堆疊的初始化、判斷棧是否為空和長度等這些運算我就不再此一一枚舉了。有興趣的可以找作者討論。

介紹完棧,我們來說佇列。與堆疊相比,佇列的特點就大不一樣。如果用蠻不講理來形容堆疊,那彬彬有禮就是佇列的代名詞。在對比這兩者的特點之前,先了解一下佇列的概念。

佇列,它和堆疊有點相似,元素的進出也有自己的名稱:入隊和出隊;插入方式也差不多,可以在**的一端插入元素;而不同的就是佇列可以在另一端刪除元素。允許插入的一段叫作隊尾,另一端則是隊首。儲存結構和堆疊的一樣。分為順序結構和鏈式結構。

了解基本的佇列的基本概念,我們就來以**的方式介紹佇列的運算,通過出隊和入隊的例子。初始化佇列

front代表是隊首,rear是隊尾在這裡我們就引入循壞隊列為滿的條件:front = (rear + 1)%maxsize

在不斷新增元素之前,front是不是等於下乙個元素,如果不等的話,rear往下乙個+1,之後判斷已經符合了隊列為滿的條件,反之則可以新增下去。然後出隊的思路和入隊的差不多,隊空的條件:front = rear;首先要判斷這個佇列是否為空,不為空的話就沒有出隊這一說法。當我們把裡面的元素刪掉之前也要先備份,因為在實際當中,不備份的情況下,出隊就意味著讓這些元素永久消失。

到了這裡,總結一下,堆疊的入棧棧滿的條件:maxsize-1;出棧:top-1;隊列入隊隊滿:front = (rear + 1)%maxsize;出隊:front = rear;對比一下堆疊和佇列在運算思路上面相似,而在特點方面卻大相徑庭。關於堆疊和佇列的介紹就到這裡,由於篇幅有限,還存在一些內容就不在這裡詳盡,如感興趣,可以與作者進行討論。

資料結構和演算法 知識小結一

資料結構是計算機儲存 組織資料的方式,指相互之間存在一種或多種特定關係的資料元素的集合。同高效的檢索演算法和索引技術有關。大多數資料結構都由數列 記錄 可辨識聯合 引用等基本型別構成。通常情況下,精心選擇的資料結構可以帶來更高的執行或者儲存效率。聯絡 演算法 資料結構 程式。資料結構一般分為邏輯資料...

資料結構知識整理 鏈隊

初始化 入隊 出隊 取隊頭元素 棧和佇列是兩種重要的線性結構,與一般線性表不同,它們是操作受限的特殊線性表,主要用於輔助其他資料結構的操作和處理,基本不用於儲存資料元素資訊。佇列 queue 是一種先進先出 first in first out,fifo 的線性表。它只允許在表的一端插入,而在表的另...

資料結構 堆疊和佇列

在資料結構中,有些簡單的線性結構是非常常用的,比如說堆疊可以用於實現函式的呼叫,佇列可以處理一些需要排隊的問題,下面就簡單介紹一下這兩種資料結構。一 堆疊 堆疊是一種特殊的資料結構,特點是filo first in,last out 而且處理的元素也只可以在棧頂這一端。下面給出堆疊常用介面,例如進棧...