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