棧是乙個特殊的線性表,只能在一端操作;
棧頂(top):允許操作 的一端;
棧底(bottom):不允許操作的一端
棧的性質: 先進後出,後進先出
.1.棧是限定僅在表尾進行插入和刪除操作的線性表;又稱 後進先出的線性表。lifo結構。
棧頂top:允許插入和刪除的一端;
棧底bottom:另外一端;
2. 空棧:不含任何資料元素的棧;top=-1;
3. 棧的操作:
進棧,壓棧,入棧:棧的插入操作;
出棧,彈棧:棧的刪除操作;
棧中有乙個元素時,top=0
#ifndef sequencestack_h
#define sequencestack_h
#include#include#include#define size 10
#define success 10000
#define failure 10001
#define true 10002
#define false 10003
struct sequencestack //表示棧的資訊
;typedef struct sequencestack stack;
int initstack(stack *s);
int push(stack *s, int e);
int gettop(stack s);
int emptystack(stack s);
int pop(stack *s);
int clearstack(stack *s);
int destroystack(stack *s);
#endif
#include"sequencestack.h"
/*函式描述:棧的初始化
函式返回值:失敗返回failure,成功返回success
*/int initstack(stack *s)
/*函式描述:元素進棧
函式返回值:失敗返回failure,成功返回success
*/int push(stack *s, int e)
/*函式描述: 獲取棧頂元素
函式引數:棧空間
函式返回值:失敗返回success,成功返回棧頂元素
*/int gettop(stack s)
/*函式描述:判斷棧是否為空
函式引數:棧空間
函式返回值:不空返回fales,空返回true;
*/int emptystack(stack s)
/*函式描述:棧內元素出棧
函式返回值:失敗返回failure,成功返回出棧元素
*/int pop(stack *s)
/*函式描述:清空棧空間
函式返回值:失敗返回failure,成功返回success
*/int clearstack(stack *s)
/*函式描述:清除棧空間
函式返回值:成功返回success,失敗返回failure
*/int destorystack(stack *s)
#include"sequencestack.h"
int main()
else
ret = emptystack(stack);
if(true == ret)
else
int i ,num;
for(i = 0; i < 15; i++)
else
}ret = gettop(stack);
if(failure == ret)
else
ret = emptystack(stack);
if(true == ret)
else
for(i = 0; i < 13; i++)
else
}ret = clearstack(&stack);
if(failure == ret)
else
ret = gettop(stack);
if(failure == ret)
else
ret = destorystack(&stack);
if(success == ret)
else
for(i = 0; i < 15; i++)
else
}return 0;
}
資料結構遍歷順序棧 資料結構 順序棧的實現
資料結構 順序棧的實現 1 快速開始 棧是一種遵循元素後進 push 先出 pop 規則的線性表,即最後加入的元素最先出來,它的實現可以用陣列或者鍊錶。它的特點如下 先出,先入後出。除了頭尾節點之外,每乙個元素有乙個前驅,有乙個後繼。2 實現棧 我們已經說過了,棧是一種線性表,故其底層是基於陣列或者...
資料結構 順序棧的實現
棧是一種遵循元素後進 push 先出 pop 規則的線性表,即最後加入的元素最先出來,它的實現可以用陣列或者鍊錶。它的特點如下 我們已經說過了,棧是一種線性表,故其底層是基於陣列或者鍊錶的。那麼,我們的重點是維護一種規則,即後進先出。我們始終要有乙個變數l來記錄最後乙個元素的位置 當彈出時,將l位置...
資料結構 棧的順序的實現
include include define stack size 100 棧的初始容量 define stackincrease 10 每次的增量 typedef int elemtype typedef structsqstack bool initstack sqstack s void cl...