(C語言實現)什麼是順序棧? 順序棧的基本操作

2021-10-06 08:27:33 字數 952 閱讀 5267

棧一共有兩種儲存結構

1.順序棧

2.鏈棧

順序棧用c語言描述是,因為不能確定整個過程中所需最大空間的大小,所以我們可以設乙個初始容量,在棧的空間不夠時在逐段擴大。

定義乙個順序棧

typedef

struct stack

stack;

基本操作
初始化棧

判空輸出棧

入棧出棧

輸出棧中元素個數

輸出棧頂元素

//初始化棧

void

initstack

(stack *s)

//判斷是否為空

bool isempty

(stack *s)

//輸出棧

void

show

(stack *s)}}

//入棧

void

push

(stack *s, elemtype x)

//出棧

void

pop(stack *s)

}//輸出棧中元素個數

void

getstacksize

(stack *s)

//返回棧頂元素

void

getfirstelem

(stack *s)

測試一下

測試**:

for

(int i =

0; i <

5; i++

)push

(&s, i)

;getfirstelem

(&s)

;getstacksize

(&s)

;show

(&s)

;

C語言 實現 順序棧

seqstack.h 標頭檔案宣告如下 include typedef int datatype 自定義資料型別,假定為整型 typedef struct seqstack 順序棧定義 seqstack typedef struct seqstack pseqstack 順序棧的指標型別 建立乙個容...

C語言實現順序棧

順序棧,就是用一組位址連續的儲存單元來存放棧元素,然後用乙個棧結構去維護乙個棧。在c中,可用動態開闢的陣列去表示,維護的棧結構需要有乙個棧底和乙個棧頂指標。因為開闢乙個陣列需要事先知道它的大小,所以棧結構裡就必須還有乙個整型變數來表示當前棧的儲存容量,再可定義乙個變數用來擴充棧的最大容量。實現如下 ...

C語言實現順序棧

棧和佇列是兩種重要的線性結構。從資料結構的角度看,棧和佇列也是線性表,其特殊性在於棧和佇列的操作位置都在特定的位置。引用自嚴蔚敏的資料結構與演算法教材 棧的結構體定義 typedef struct stack sqstack 和鍊錶類似 我們首先要初始化順序棧 sqstack initsqstack...