資料結構 棧的陣列表示

2021-10-03 13:52:16 字數 1383 閱讀 5417

棧:棧(stack)又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素。從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。允許進行插入和刪除操作的一端稱為棧頂(top),另一端為棧底(bottom);棧底固定,而棧頂浮動;棧中元素個數為零時稱為空棧。棧也稱為「先進後出」表。

操作:利用陣列的形式,對棧進行初始化,判斷棧是否為空,得到棧頂元素,入棧,出棧,遍歷棧。

#include

#include

#define true 1

#define error -1

#define overflow -1

#define init_stack_size 100

//棧最大儲存空間

#define sizeincrement 10

//當前棧中元素個數

typedef

int elemtype;

typedef

int status;

typedef

struct

sqstack;

//初始化

status initstack

(sqstack &s)

//得到棧頂元素

status gettop

(sqstack s,elemtype &e)

//入棧

status push

(sqstack &s,elemtype e)

*s.top++

=e;return true;

}//出棧

status pop

(sqstack &s, elemtype &e)

//遍歷輸出

status printstack

(sqstack &s)

printf

("\n");

return true;

}//判斷棧是否為空棧

status stacknotempty

(sqstack &s)

else

}int

main()

else

printf

("請輸入該元素的資料\n");

while

(m--!=0

)printf

("\n");

printf

("出棧乙個元素後的棧:\n");

pop(s,e)

;printstack

(s);

return0;

}

若**有錯誤的地方或是其他**,請各位指教。

(資料結構)棧操作表示

標頭檔案 include include define stack init size 100 儲存空間初始分配量 define stackincrement 10 儲存空間分配增量 typedef int selemtype typedef int status typedef struct sq...

資料結構 鏈式棧的表示和實現

鏈式棧的表示和實現 鏈式棧 採用鏈式的儲存結構實現的棧 通常使用單鏈表的形式 2019.04.15 include include include using namespace std define ok 1 define error 0 define overflow 1 typedef int...

資料結構 棧(靜態陣列)

棧是先進先出的一種資料結構。本文是以靜態陣列為儲存結構的棧的實現。棧的adt如下 資料元素集合 乙個元素的有序序列,只能在棧頂進行入棧和出棧的操作 基本方法 1.stack 建立乙個空棧 2.empty 檢查棧是否為空 3.push 在棧頂新增乙個元素 4.top 提取棧頂元素 5.pop 刪除棧頂...