棧應該是第一次出現乙個很專業名詞的資料結構了吧,但是棧依然是乙個非常簡單一維結構。
之所以稱之為棧,就是因為棧的特點是後進先出,就像乙個貨棧,先放進去東西總是放在裡面,後放進去的東西放到門口,所以往外拿出來的時候,就先拿出來門口的。
我們把線性表看為從上到下的乙個一維結構,不管是往線性表裡新增元素還是取出元素,都是在上部(頂部)操作,不就是後進先出了嗎。
所以棧其實就是在一維線性表頂部(最後面)進行新增或者取出的集合。
棧可以使用陣列或者鍊錶作為儲存結構,當使用陣列時為順序棧,使用鍊錶時為鏈棧。
其他操作實際上都是以這幾個操作為基礎實現的。
/*
* 順序棧的實現*/#
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...