順序棧的C 實現

2021-09-26 10:48:25 字數 1871 閱讀 8651

#include using namespace std;

// 函式結果狀態**

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1

#define overflow -2

#define maxsize 100

// status 是函式的型別 其值是函式結果狀態**

typedef int status;

typedef int selemtype;

//棧資料結構

typedef struct stack

sqstack;

// 初始化操作

status initstack(sqstack &s);

// 銷毀棧

status destroystack(sqstack &s);

// 判斷s是否為空棧

status stackempty(sqstack &s);

// 求棧的長度

status stacklength(sqstack &s);

// 取棧頂元素

status gettop(sqstack &s, selemtype &e);

// 棧置空操作

status clearstack(sqstack &s);

// 入棧操作

status push(sqstack &s, selemtype e);

// 出棧操作

status pop(sqstack &s, selemtype &e);

int main() else

// 求棧的長度

int length = stacklength(s);

cout << "棧的長度: " << length << endl;

// 取棧頂元素

gettop(s, e);

cout << "棧頂元素: " << e << endl;

// 出棧操作

pop(s, e);

cout << "出棧元素: " << e << endl;

// 棧置空操作

clearstack(s);

// 判斷s是否為空棧

ret = stackempty(s);

if (ret == true) else

// 銷毀棧

destroystack(s);

return 0;

}// 初始化操作

status initstack(sqstack &s)

// 銷毀棧

status destroystack(sqstack &s)

return ok;

}// 判斷s是否為空棧

status stackempty(sqstack &s)

// 求棧的長度

int stacklength(sqstack &s)

// 取棧頂元素

status gettop(sqstack &s, selemtype &e)

// 棧置空操作

status clearstack(sqstack &s)

// 入棧操作

status push(sqstack &s, selemtype e)

// 出棧操作

status pop(sqstack &s, selemtype &e)

測試:

非空棧

棧的長度: 3

棧頂元素: 33

出棧元素: 33

空棧

順序棧的c 實現

棧的定義以及對棧的操作在mystack.h中實現 ifndef mystack h define mystack h template class mystack 利用建構函式初始化棧的容量 template mystack mystack int stackcapacity 利用析構函式清除棧 t...

c 順序棧的實現

一 實驗目的 鞏固線性表的資料結構的儲存方法和相關操作,學會針對具體應用,使用線性表的相關知識來解決具體問題,鞏固課堂學習。二 實驗內容 1.建立乙個由n個學生成績的順序表,n的大小由自己確定,每乙個學生的成績資訊由自己確定,實現資料的對錶進行插入 刪除 查詢等操作。分別輸出結果。這裡用順序棧來實現...

C 實現順序棧

vs2013下實現 include include using namespace std const int stacksize 20 templateclass stack 建構函式,初始化乙個空棧 stack t a,int n 含參建構函式 stack const stack otherst...