棧是僅限定在表位進行插入和刪除的線性表。因此,對棧來說,表尾端有其特殊含義,稱為棧頂,相應的表頭端稱為棧底。不含元素的空表稱為空棧。
假設棧s=(a1,a2,...,an),則稱a1為棧底元素,an為棧頂元素。棧中元素按啊a1,a2,...,an的次序進棧,退棧的第乙個元素應是棧頂元素。換句話說,棧的修改是按後進先出的原則進行的。因此,棧又稱後進先出的戲線性表(簡稱lifo結構)。
棧的示意圖
------------------棧的順序儲存表示------------------
typedef structsqstack;
//initstack
//構造乙個空棧s
int initstack(sqstack &s)
//gettop
//用e返回s的棧頂元素
int gettop(sqstack s,int &e)
//push
//插入元素e為新的棧頂元素
int push(sqstack &s,int e)
*s.top++=e;
return ok;
}
//pop
//刪除s的棧頂元素並用e返回其值
int pop(sqstack &s,int &e)
//main
#include#include#define ok 1
#define error 0
#define true 1
#define false 0
#define overflow -2
#define stack_int_size 100 //儲存空間初始分配量
#define stackincrement 10 //儲存空間分配增量
int main()
printf("out:\n");
int l=stacklength(s);
for(int i=0;i
順序棧 棧的順序表示和實現
用順序表表示的棧的基本操作 include include define selemtype int define status int define stack init size 100 初始空間分配量 define stackincrement 10 儲存空間分配增量 using namesp...
c語言順序棧的表示和實現
define stack init size 100 初始大小 100個資料長度 define stackincrement 10 棧的分配增量 typedef int elemtype 棧儲存的資料型別 typedef enum status 列舉返回函式執行結果 typedef struct s...
順序棧的表示與實現
說明 想要使用順序表實現棧,結構體中應包含棧頂和棧底的指標,同時需要指定棧的儲存單元大小 動態可變 其中棧底指標base用來動態分配棧的記憶體空間,棧頂指標top用來指定棧頂元素在順序棧中的位置。初始化時top bas etop base top ba se,表示棧中無元素,而後每壓入乙個新的元素,...