棧:是限定僅在表尾進行插入或刪除操作的線性表,表尾段稱為棧頂,表頭段稱為棧底,棧有稱後進先出線性表。棧有順序棧和鏈棧。
一、棧的順序儲存
1、順序棧的結構定義
//2、建立乙個空棧順序棧的儲存結構
typedef struct
sqstack;
//3、元素入棧建立乙個空棧
#define stack_init_size 100 //
儲存空間初始分配量
#define stackincrement 10 //
儲存空間分配增量
status initstack(sqstack &s)
//4、元素出棧元素入棧
status push(sqstack &s, elemtype e)
*s.top =e;
s.top++;
//*s.top++ = e;
}
//5、清空乙個棧(將棧頂指標指向棧底指標)元素出棧
status pop(sqstack &s, elemtype &e)
//6、銷毀乙個棧清空乙個棧
status clearstack(sqstack &s)
//7、返回棧的當前容量銷毀棧status destroystack(sqstack &s)
s.base = s.top =null;
s,stacksize = 0
;}
//棧的應用(進製間的轉換):返回棧當前容量
status stacklen(sqstack &s)
1//二進位制轉十進位制
2 #include3 #include4 #include5
6#define stack_init_size 20
7#define stackincrement 10
89 typedef char
elemtype;
1011 typedef struct
sqstack;
1617
void initstack(sqstack &s)
2425
void push(sqstack &s, elemtype e)
31 *s.top =e;
32 s.top++;33}
3435
void pop(sqstack &s, elemtype &e)
4041
intstacklen(sqstack s)
4445
intmain()
56getchar();
57 len =stacklen(s);
58 printf("
棧的當前容量是:%d\n
",len);
59for(int i = 0; i )
63 printf("
轉化為十進位制數為:%d\n
棧 的基本操作。
include include typedef struct node node,pnode typedef struct stack stack,pstack void initialize pstack mystack 棧的初始化。int push stack pstack mystack,in...
棧的基本操作
描述 棧是一種重要的資料結構,它具有push k和pop操作。push k是將數字k加入到棧中,pop則是從棧中取乙個數出來。棧是後進先出的 把棧也看成橫向的乙個通道,則push k是將k放到棧的最右邊,而pop也是從棧的最右邊取出乙個數。假設棧當前從左至右含有1和2兩個數,則執行push 5和po...
棧的基本操作
下面先實現站的基本功能,最後通過乙個test來測試下方法是否實現 建個.c檔案 typedef struct seqstack 初始化 seqstack seqstackinit return null 判斷棧是否為空 int seqstackisempty seqstack s void seqs...