棧的基本操作( 例項)

2022-07-01 03:06:10 字數 1803 閱讀 4115

棧:是限定僅在表尾進行插入或刪除操作的線性表,表尾段稱為棧頂,表頭段稱為棧底,棧有稱後進先出線性表。棧有順序棧和鏈棧。

一、棧的順序儲存

1、順序棧的結構定義

//

順序棧的儲存結構

typedef struct

sqstack;

2、建立乙個空棧

//

建立乙個空棧

#define stack_init_size 100 //

儲存空間初始分配量

#define stackincrement 10 //

儲存空間分配增量

status initstack(sqstack &s)

3、元素入棧

//

元素入棧

status push(sqstack &s, elemtype e)

*s.top =e;

s.top++;

//*s.top++ = e;

}

4、元素出棧

//

元素出棧

status pop(sqstack &s, elemtype &e)

5、清空乙個棧(將棧頂指標指向棧底指標)

//

清空乙個棧

status clearstack(sqstack &s)

6、銷毀乙個棧

//

銷毀棧status destroystack(sqstack &s)

s.base = s.top =null;

s,stacksize = 0

;}

7、返回棧的當前容量

//

返回棧當前容量

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...