C語言資料結構 5 順序棧

2021-09-27 12:30:28 字數 870 閱讀 1024

棧應該是第一次出現乙個很專業名詞的資料結構了吧,但是棧依然是乙個非常簡單一維結構。

之所以稱之為棧,就是因為棧的特點是後進先出,就像乙個貨棧,先放進去東西總是放在裡面,後放進去的東西放到門口,所以往外拿出來的時候,就先拿出來門口的。

我們把線性表看為從上到下的乙個一維結構,不管是往線性表裡新增元素還是取出元素,都是在上部(頂部)操作,不就是後進先出了嗎。

所以棧其實就是在一維線性表頂部(最後面)進行新增或者取出的集合。

棧可以使用陣列或者鍊錶作為儲存結構,當使用陣列時為順序棧,使用鍊錶時為鏈棧

其他操作實際上都是以這幾個操作為基礎實現的。

/*

* 順序棧的實現*/#

include

#define

stack_length

10//定義結構體儲存棧資訊

struct

stack

;//展示棧內所有元素(方便測試),從棧頂到棧底的順序展示即可

void

printstack

(struct

stack

*p)printf

("\n***************===\n");

}//入棧

intstackin

(struct

stack

*p,int num)

//出棧,以返回值的形式提供出棧元素的值

intstackout

(struct

stack

*p,int

*result)

//入口

intmain()

C語言資料結構 順序棧

順序棧為具有特殊運算操作的順序表,資料通過棧頂先進先出。棧的資料空間和陣列類似儲存固定的一類資料。儲存在連續的空間中,通過出棧和入棧來進行資料操作。具體看下面的函式實現 include define stacksize 20 定義順序棧結構 typedef structseqstack 初始化 vo...

C語言資料結構之順序棧

tips 前些天學習了順序表的一系列操作,今天來看看c語言資料結構之順序棧的實現以及關於順序棧的各種操作。棧的特點是先進後出,後進先出,在陣列中可利用乙個指向陣列下標指標top來進行順序棧的相關操作。首先我們定義乙個順序棧的結構體 define maxsize 10 給順序棧定義預設大小 typed...

資料結構 順序棧c

include include includeusing namespace std templateclass stacklist else cout endl return output 不帶引數的建構函式 templatestacklist stacklist 初始化最大容量為n的建構函式 t...