**
給定乙個初始為空的棧和一系列壓棧、彈棧操作,請編寫程式輸出每次彈棧的元素。棧的元素值均為整數。
輸入格式:
輸入第1行為1個正整數n,表示操作個數;接下來n行,每行表示乙個操作,格式為1 d或0。1 d表示將整數d壓棧,0表示彈棧。n不超過20000。
輸出格式:
按順序輸出每次彈棧的元素,每個元素一行。若某彈棧操作不合法(如在棧空時彈棧),則對該操作輸出invalid。
**實現如下:
#include
#define n 20000
typedef int status;
#define maxsize 20000
#define ok 1
#define error 0
#define overflow -1
#include
using namespace std;
typedef structsqstack;
status initstack(sqstack &s)
status push(sqstack &s,status e)
status pop(sqstack &s,status &e)
status gettop(sqstack s)
int main()
else if(a== 0)
}n–;
}return 0;
}
棧的基本操作及實現(順序棧)
順序儲存結構來實現的棧稱為順序棧,它利用一組位址連續的儲存單元存放自棧底到棧頂的資料元素,同時附設乙個指標top來指示當前棧頂的位置。注意,是c 特有的用來表示引用呼叫,所以此檔案應以.cpp字尾儲存 結構體為 define maxsize 50 typedef int elemtype typed...
鏈棧及基本操作的實現
include pch.h include include include include 因為棧鏈結點是動態分配的,不考慮棧溢位 typedef struct lnode lnode 棧初始化 帶頭結點 void intistack lnode lst 判斷棧是否為空 int isempty ln...
封裝棧的基本操作及棧的應用
程式 如下 stack.h typedef int sdatatype typedef char sdatatype define maxsize 10 typedef struct stack stack void stackinit stack ps void stackpush stack p...