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

2021-08-26 10:13:58 字數 1159 閱讀 2120

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...