《大話資料結構》第四章棧與佇列

2021-08-26 10:13:58 字數 937 閱讀 1902

1.棧是限定僅在表尾進行插入和刪除的線性表

允許插入和刪除的一端稱為棧頂,另一端稱為棧底,不含任何元素的棧稱為空棧,棧又稱為後進先出的線性表,簡稱lifo結構。

1.1 棧的插入操作,叫做進棧,也稱壓棧,入棧。子彈如彈夾

棧的刪除操作,叫做出棧。子彈彈出彈夾

1.2 先進棧的元素是不是只能最後出棧?

答案不一定,如果有3個元素,有5種可能的出棧順序。

1.3 棧的順序儲存結構和實現

1.3.1 用陣列實現棧,下標為0的一端作為棧底較好,大頭做棧頂,因為經常要做插入和取出的操作。

1.3.2 我們用乙個top的變數指示棧頂元素在陣列中得位置,當棧只有乙個元素時,top等於0,空棧的top=-1。

1.3.3 棧的結構定義

見後面實現**

1.3.4 若有乙個棧,stacksize是5,請看下圖

1.3.5 棧的順序儲存結構——各種操作實現

public class stackdemo } class stack /* * 初始化棧 */ public void initstack() /* * 入棧 */ public string push(int element) // 先top加1,然後再插入值 top++; data[top] = element; return "success"; } /* * 出棧 */ public int pop() // 先top減1,然後再返回值 int temp = top; top--; return data[temp]; } /* * 棧元素個數 */ public int stacklength() return top + 1; } /* * 判斷棧是否為空 */ public boolean isempty() return false; } // 棧置為空 public void clear() /* * 從棧底開始列印所有元素 */ public void print() } }

《大話資料結構》第四章棧與佇列

1.棧是限定僅在表尾進行插入和刪除的線性表 允許插入和刪除的一端稱為棧頂,另一端稱為棧底,不含任何元素的棧稱為空棧,棧又稱為後進先出的線性表,簡稱lifo結構。1.1 棧的插入操作,叫做進棧,也稱壓棧,入棧。子彈如彈夾 棧的刪除操作,叫做出棧。子彈彈出彈夾 1.2 先進棧的元素是不是只能最後出棧?答...

(資料結構)第四章 棧與佇列

許多程式語言本身就是建立在棧結構之上的,其實時運算環境都是基於棧結構的虛擬機器。相對於向量和列表,棧與佇列的外部介面更為簡化和緊湊。棧的應用主要為 結合函式呼叫棧的機制介紹一般函式呼叫的實現方式與過程,並將其推廣至遞迴呼叫。然後以降低空間複雜度的目標為線索,介紹通過顯示地維護棧結構解決應用問題的典型...

「抽象」《大話資料結構》第四章 棧

首先棧是一種線性表,他比較特殊,只能在表尾進行插入和刪除操作。資料型別 棧的每乙個元素依然是結構體,有資料域,有棧頂指標。對應操作 1 初始化操作,建立乙個空棧。2 釋放棧的分配空間 3 在棧頂插入新的元素 4 刪除掉棧頂的元素 5 返回棧的元素個數 根據棧的抽象資料型別,現在一一實現它。typed...