基本定義
棧是人為規定只能在表尾進行插入或刪除的線性表,表尾稱為棧頂,表頭稱為棧底,是一種後進先出lifo的結構。棧的基本操作和線性表類似
棧的具體實現
棧本質上也是線性表,因此也有順序儲存和鏈式儲存兩種實現方式。
對於鏈棧,一般將頭指標作為指向棧頂的指標,新的資料元素使用頭插法插入到鏈棧中
棧的應用場景
遞迴乙個直接呼叫自己或通過一系列呼叫語句間接地呼叫自己的函式,稱為遞迴函式。從某種意義上看,也是分治思想的一種應用。遞迴函式在執行過程中,實際上是將程式的執行狀態以棧的形式儲存,達到層層遞迴的效果
一般來說,程式在呼叫乙個函式時,會進行以下操作
在被呼叫函式返回之前,一般會進行以下操作
佇列只允許在一端插入元素,在另一端刪除元素,是一種先進先出fifo的線性表結構。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。雙端佇列是可以自己規定兩個端點的插入/刪除規則的一種佇列結構
佇列具體實現方式
鏈佇列由於需要在隊尾插入、在隊頭刪除,鏈佇列需要兩個指標分別指向煉表頭和鍊錶尾。在設計刪除元素的演算法時,要注意處理刪除佇列中最後乙個元素的情況,尤其是隊尾指標的賦值
迴圈佇列
迴圈佇列是佇列順序儲存結構的實現,使用一組位址連續的儲存單元,還要使用兩個指標分別指示隊頭、隊尾的位置。在非空的迴圈佇列中,頭指標始終指向佇列頭元素的位置,尾指標始終指向佇列尾元素的下乙個位置(下一次插入元素可以直接放入)。插入元素後尾指標後移乙個位置;刪除元素後則將頭指標前移乙個位置
為了區別迴圈佇列是空是滿,迴圈佇列中留出乙個位置不存放資料元素。若隊列為空,首尾指標指向同乙個位置;若隊列為滿,尾指標的下乙個位置為頭指標指向位置
資料結構複習筆記
資料 資料是資訊的載體,是描述客觀事物屬性的數 字元及所有能輸入到計算機中並被電腦程式識別和處理的符號的集合。資料是電腦程式加工的原料。資料元素 是資料的基本單位,通常作為乙個整體進行考慮和處理。資料項 乙個資料元素可由若干資料項組成,資料項是構成資料元素的不可分割的最小單位。資料物件 是具有相同性...
資料結構複習筆記 1
為什麼要學習資料結構?看圖就能明白了!資料結構是什麼?資料結構課程體系 資料結構課程集中討論軟體開發過程中的設計階段 同時設計編碼和分析階段的若干基本問題。此外,為了構造出好的資料結構及其實現,還需考慮資料結構及其實現的評價與選擇。因此,資料結構的內容包括三個層次的五個 要素 如圖1.5 所示。資料...
資料結構複習筆記 概論
資料元素之間的關係在計算機中有兩種不同的表示方法 順序映像和非順序映像,並由此得到兩種不同的儲存結構 順序儲存結構和鏈式儲存結構。順序映像的特點是借助元素在儲存器中的相對位置來表示元素之間的邏輯關係 非順序映像的特點是借助儲存元素儲存位址的指標表示元素之間的邏輯關係。資料的儲存結構和物理結構密切相關...