2-2 鏈式棧儲存結構與基本運算
3、棧的應用
棧(stack):限定在棧頂(表尾)進行插入(入棧)和刪除(出棧)的線性表。基操作的特性是先進後出,又稱為**後進先出(last in first out, lifo)**的線性表。
根據棧的設計儲存結構的不同,一般分也順序棧和鏈式棧,對應的基本運算操作也有所不同。
棧的順序儲存是指分配一塊連續的儲存單元存放棧的元素,並同時附設乙個變數(top)指向當前棧頂的位置。
棧的基本設定不一定都是相同的,這裡設定top為-1時為棧空,也的設定是0為棧空。
#define maxsize 50
typedef structsqstack;
初始化棧的**片段
s.top = -1;
判斷棧空的**片段
if(s.top == -1)return true;
else return false;
進棧操作的**片段
if(s.top == maxsize-1)return false;
s.data[++s.top] = x;
出棧操作的**片段
if(s.top == -1)return false;
x = s.data[s.top--];
讀棧頂的**片段
if(s.top == -1)return false;
x = s.data[s.top];
typedef struct linknode*listack; //
資料結構3 棧
pragma once include include include include using namespace std 棧的典型應用 1 有明確演算法解決乙個問題,但是問題的解卻以線性序列的形式給出。2 無論是遞迴還是迭代實現,該線性序列都是以逆序計算輸出的。3 輸入輸出規模不確定,難以事先...
資料結構(3) 棧
0.目錄 1.線性表 陣列 2.線性表 單向鍊錶 3.棧棧是一種比較常見的資料結構,是一種較為特殊的線性表。對於棧來說,插入 刪除 訪問元素只能在棧頂進行。對棧的基本操作有push 進棧 pop 出棧 和peek 查詢棧頂 基於這種特性,棧又叫做lifo last in first out 表,即後...
資料結構3 棧
2 2 鏈式棧儲存結構與基本運算 3棧的應用 棧 stack 限定在棧頂 表尾 進行插入 入棧 和刪除 出棧 的線性表。基操作的特性是先進後出,又稱為後進先出 last in first out,lifo 的線性表。根據棧的設計儲存結構的不同,一般分也順序棧和鏈式棧,對應的基本運算操作也有所不同。棧...