資料結構筆記 4 1 棧的順序儲存結構及實現

2021-10-08 05:25:53 字數 2081 閱讀 3159

1、概念

棧的順序儲存結構通常是特殊的順序儲存線性表。

2、功能**實現

(1)棧的順序儲存結構的儲存結構

typedef

struct sqstack

sqstack,

*sqstackpointer;

(2)初始化棧:分配空間

void

initstack

(sqstackpointer *s)

(3)入棧

int

push

(sqstackpointer s,elemtype e)

(4)出棧

int

pop(sqstackpointer s)

(5)判斷棧是否為空

int

stackempty

(sqstackpointer s)

(6)返回棧頂元素

int

gettop

(sqstackpointer s)

(7)返回棧的元素的個數

int

stacklength

(sqstackpointer s)

(8)清空棧

void

clearstack

(sqstackpointer s)

(9)銷毀棧

void

destroystack

(sqstackpointer s)

3、測試程式(編譯環境visual studio 2017)

#include

#include

#define ok 1

#define error -999

#define maxsize 27

typedef

int elemtype;

typedef

struct sqstack

sqstack,

*sqstackpointer;

void

initstack

(sqstackpointer *s)

intpush

(sqstackpointer s,elemtype e)

intpop

(sqstackpointer s)

intstackempty

(sqstackpointer s)

intgettop

(sqstackpointer s)

intstacklength

(sqstackpointer s)

void

clearstack

(sqstackpointer s)

void

destroystack

(sqstackpointer s)

void

menu()

intmain

(void

)printf

("請輸入需要執行的功能:");

scanf_s

("%d"

,&i);}

printf()

;return0;

}

執行結果:

資料結構(棧 順序儲存 )

棧是特殊的線性表,規定插入和刪除在同一端進行 進行插入和刪除的那一端成為棧頂,另一端為棧底 插入為進棧,刪除為出棧 先進後出 ps 例如 abc進棧 出棧共有幾種情況 上溢 超出規定的空間大小還進行插入操作 下溢 棧中元素已經用完了還進行刪除操作 include include include de...

順序儲存 資料結構 棧

備註 以列表為基礎進行對此的封裝,以便達到棧的效果及作用 1 2棧的順序儲存結構 3重點 4 56 自定義棧異常 7class stackerror exception 8pass910 基於列表實現順序棧 11class sstack 12def init self 13 約定列表的最後乙個元素為...

資料結構 棧的順序儲存

棧是一種後進先出的資料結構,也就是說他不像陣列那樣子,可以在中間插入,棧只能夠在上乙個存入資料的後面再存資料,而且只能取現進去的資料。棧簡稱lifo結構。棧是限定僅在表位進行插入和刪除操作的線性表。允許插入和刪除的一端叫棧頂,另一端叫棧底,不含任何元素的叫空棧。棧的插入操作,叫做進棧,也稱作壓棧,入...