定義:作為一種限定性線性表,是將線性表的 插入和刪除運算限制為僅在表的一端進行。 表中允許進行插入、刪除操作的一端稱為 棧頂 (top),表的另一端被稱為棧底 (bottom)。
當棧中沒有元素時稱為空棧。 棧的插入操作稱為進棧或入棧。 棧的刪除操作稱為出棧或退棧。
特點:後進先出(lifo)
棧主要包括兩種:
① 順序棧 用順序儲存結構實現的棧,即利用一組位址 連續的儲存單元依次存放自棧底到棧頂的資料元 素,同時由於棧的操作的特殊性,還必須附設一 個位置指標top(棧頂指標)來動態地指示棧頂元 素在順序棧中的位置。 通常以top = -1表示空棧。
順序棧的基本操作:
(1)initstack(s)初始化:初始化乙個新的棧。
(2)empty(s)棧的非空判斷:若棧s不空,則返回true;否則,返回 false。
(3)push(s,x)入棧:在棧s的頂部插入元素x,若棧滿,則返回 false;否則,返回true。
(4)pop(s)出棧:若棧s不空,則返回棧頂元素,並從棧頂中刪除該元 素;否則,返回空元素null。
(5)gettop(s)取棧頂元素:若棧s不空,則返回棧頂元素;否則返回 空元素null。
(6)setempty(s)置棧空操作:置棧s為空棧。
順序棧的c語言描述
#define stack_size 50
typedef struct
seqstack;
順序棧的基本操作:① 初始化
void initstack(seqstack *s)
②判棧空
int isempty(seqstack *s)
③判棧滿
int isfull(seqstack *s)
④ 進棧
int push(seqstack * s, stackelementtype x)
⑤出棧
int pop(seqstack * s, stackelementtype *x)
}
資料結構 棧(C語言)
資料結構 棧 c語言 功能 建棧 出棧 壓棧 判斷棧是否為空 include include define ele int typedef struct stack stack stack newstack 初始化棧 int push stack s,ele value 壓棧 int pop sta...
C語言學習 資料結構(棧的實現)
c語言學習 資料結構 棧的實現 1 棧的簡述 棧是一種資料結構,它可以用來存放數字,一次只能存放乙個數字。一次只能向棧裡加入乙個數字。可以棧裡獲得乙個數字,一次只能獲得乙個數字。棧裡的數字有前後順序,先進入的數字在前,後進入的數字在後。每次從棧裡獲得數字必須是最後放進去的數字。這種使用規則叫後進先出...
C語言資料結構 順序棧
順序棧為具有特殊運算操作的順序表,資料通過棧頂先進先出。棧的資料空間和陣列類似儲存固定的一類資料。儲存在連續的空間中,通過出棧和入棧來進行資料操作。具體看下面的函式實現 include define stacksize 20 定義順序棧結構 typedef structseqstack 初始化 vo...