C語言實現順序棧

2021-08-22 06:15:43 字數 1030 閱讀 6741

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

#include#include#include//順序棧實現

#define stack_init_size 100//儲存空間初始分配量

#define stackincrement 10//儲存空間分配增量

typedef structsqstack;

//順序棧基本操作實現

//構造乙個空棧

//初始化成功返回true

bool initstack(sqstack &s)

s.top = s.base;

s.stacksize = stack_init_size;

return true;

}//銷毀棧s,s不在存在

//銷毀成功,返回true

int destroystack(sqstack &s)

//把s置為空棧

//成功返回true

int clearstack(sqstack &s)

//判斷是否空棧

//返回,true-空棧,false-非空棧

int stackempty(sqstack &s)

//返回當前棧的長度

//成功返回當前棧的長度,異常退出

int stacklength(sqstack &s)

//取出棧頂元素

int gettop(sqstack &s, int &e)

e = *(s.top - 1);

}//入棧

int push(sqstack &s, int e)

* s.top++ = e;

return true;

}//出棧

int pop(sqstack &s,int &e)

C語言 實現 順序棧

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

C語言實現順序棧

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

順序表棧C語言實現

seqstack.h created on 2019年8月1日 author administrator ifndef seqstack h define seqstack h 陣列去模擬棧的順序儲存,有陣列的後面模擬棧頂 避免資料頻繁移動 define max size 1024 define s...