#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...