棧的簡單總結(順序棧)

2021-10-03 19:10:11 字數 1088 閱讀 4040

棧結構的特點:

棧是線性表結構的一種,但是棧結構的插入與刪除操作都只能從同一端進行,所以棧結構是一種受限制的線性表結構,資料的插入與刪除符合lifo的原則(也就是後進先出,先進後出)。

棧的結構:

對棧進行插入與刪除操作的一端稱為棧頂(top),另一端則稱為棧底(base);

棧的進本操作:

棧的基本操作有向棧中壓入元素的入棧(push)、刪除棧頂元素出棧(pop)…

下面進行乙個簡單的思考:

若使給定的n個元素以一定順序入棧,可任意出棧,那麼n個元素可以有多少種出棧順序?

經過推導可知,結果是乙個卡塔蘭數:

棧的結構可表示為:

規定a

na_n

an​為棧頂,a

1a_1

a1​為棧底。

下面對棧的部分操作進行實現:

//使用順序棧

#include

#include

#define init_stack_size 10

#define ok 1

#define erroe 0

using

namespace std;

typedef

struct stack

stack;

//初始化乙個棧

status init_stack

(stack &s)

//向棧中壓入元素e

status push

(stack &s,elemtype e)

//棧頂元素出棧

status pop

(stack &s,eletype &x)

//獲取棧頂元素e

status gettop

(stack &s,elemtype &e)

以上就是棧結構的一些簡單操作.

棧的簡單實現(順序棧 鏈棧)

include define maxsize 100 define true 1 define false 0 define ok 1 define error 0 define infeasible 1 define overflow 2 using namespace std typedef i...

順序棧的總結

基本資料結構之 順序棧 棧是一種先進後出的資料結構,我們可以使用乙個陣列來模擬棧的這種結構,將陣列的尾部當做棧的棧頂似乎是乙個不錯的選擇 插入和移除元素是不涉及到資料的移動 也可以很好的控制陣列的長度,和資料的進棧和出棧!首先先解析一下順序棧的資料結構 1 需要乙個資料域來儲存資料 考慮到可能儲存自...

順序棧的簡單實現

資料結構中順序棧的簡單實現和簡單操作的測試。順序棧的簡單實現 include define elemtype char define maxsize 50 using namespace std 結構定義 typedef struct sqstack 初始化 void initstack sqsta...