資料結構(五)(順序)棧實現的功能

2021-09-25 23:27:45 字數 2333 閱讀 2826

棧是乙個特殊的線性表,只能在一端操作;

棧頂(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...