#include#include#define stack_size 100 //棧的初始容量
#define stackincrease 10 //每次的增量
typedef int elemtype;
typedef structsqstack;
bool initstack(sqstack &s)
void clearstack(sqstack &s)
bool stackempty(sqstack s)
int stacklength(sqstack s)
bool gettop(sqstack &s, elemtype &e)
bool push(sqstack &s, elemtype e)
*s.top = e;
s.top++;
//*(s.top++) = e; //這兩條語句可以合併
return true;
}bool pop(sqstack &s, elemtype &e)
int main()
while(scanf("%d", &e) && e != -1)
printf("棧的長度是:%d\n", stacklength(s));
printf("請輸入你想要進行的操作序號:\n");
printf("1:新增元素,2:刪除棧頂元素,3:取棧頂元素,4:判斷棧是否為空,\n5:返回棧的長度,6:清空棧,7:退出\n");
int n;
while(scanf("%d", &n) && n != 7)
else
printf("刪除失敗\n");
break;
case 3:
if(gettop(s, e) == true)
printf("棧頂元素是:%d\n", e);
else
printf("操作失敗\n");
break;
case 4:
if(stackempty(s) == true)
printf("棧為空\n");
else
printf("棧不為空\n");
break;
case 5:
printf("棧的長度是:%d\n", stacklength(s));
break;
case 6:
clearstack(s);
printf("清空成功\n");
break;
default:
printf("輸入有誤,請重新輸入\n");
break;
} } printf("謝謝你的使用!\n");
return 0;
}
資料結構遍歷順序棧 資料結構 順序棧的實現
資料結構 順序棧的實現 1 快速開始 棧是一種遵循元素後進 push 先出 pop 規則的線性表,即最後加入的元素最先出來,它的實現可以用陣列或者鍊錶。它的特點如下 先出,先入後出。除了頭尾節點之外,每乙個元素有乙個前驅,有乙個後繼。2 實現棧 我們已經說過了,棧是一種線性表,故其底層是基於陣列或者...
資料結構 順序棧的實現
棧是一種遵循元素後進 push 先出 pop 規則的線性表,即最後加入的元素最先出來,它的實現可以用陣列或者鍊錶。它的特點如下 我們已經說過了,棧是一種線性表,故其底層是基於陣列或者鍊錶的。那麼,我們的重點是維護一種規則,即後進先出。我們始終要有乙個變數l來記錄最後乙個元素的位置 當彈出時,將l位置...
資料結構之順序棧的實現
我們知道棧可以完成的基本操作是入棧,出棧,取棧頂元素,可以由順序表形式實現,也可以由鍊錶形式實現 今天我們就來實現一下順序棧 首先來看下順序棧的實現 seqstack.h pragma once include include include define header printf n s n f...