資料結構 順序棧(C C )

2021-10-06 13:18:02 字數 1973 閱讀 2104

#include

"stdio.h"

#include

"stdlib.h"

#include

"stdbool.h"

#define maxsize 50

typedef

int datatype;

typedef

struct

sqstack;

bool stackempty

(sqstack* pstack)

;bool pushstack

(sqstack *stack,

int value)

;datatype popstack

(sqstack *stack)

;datatype gettop

(sqstack *stack)

;void

destroystack

(sqstack *stack)

;int

main()

,-1}

; sqstack *pstack =

&sqstack;

printf

("棧是否為空:%d\n"

,stackempty

(pstack));

printf

("8、6、5、4進棧\n");

pushstack

(pstack,8)

;pushstack

(pstack,6)

;pushstack

(pstack,5)

;pushstack

(pstack,4)

;printf

("棧是否為空:%d\n"

,stackempty

(pstack));

printf

("出棧:%d\n"

,popstack

(pstack));

printf

("出棧:%d\n"

,popstack

(pstack));

printf

("棧頂元素:%d\n"

,gettop

(pstack));

destroystack

(pstack)

;printf

("銷毀棧\n");

return0;

}/**

* 銷毀棧

* @param stack

*/void

destroystack

(sqstack *stack)

/** * 獲取棧頂元素

* @param stack

* @return

*/datatype gettop

(sqstack *stack)

return stack->data[stack->top];}

/** * 彈出棧頂元素

* @param stack

* @return

*/datatype popstack

(sqstack *stack)

// 棧頂指標下移

return stack->data[stack->top--];

}/**

* 入棧

* @param stack

* @param value

* @return

*/bool pushstack

(sqstack *stack,

int value)

// 棧頂指標後移,進棧

stack->data[

++stack->top]

= value;

}/**

* 判斷棧是否為空

* @param pstack

* @return

*/bool stackempty

(sqstack* pstack)

資料結構 順序棧

編寫乙個程式,實現順序棧 假設棧中元素型別為char 的各種基本運算。並完成下面功能 1 初始化棧s 2 判斷棧s是否非空 3 依次進棧元素a,b,c,d,e 4 判斷棧s是否非空 5 輸出棧長度 6 輸出從棧頂到棧底元素 7 輸出出棧序列 8 判斷棧s是否非空 9 釋放棧。include incl...

資料結構 順序棧

構造乙個順序棧 當輸入9999時,結束入棧操作 輸出棧中元素,顯示棧頂元素,刪除棧頂元素 include include include define stack init size 100 define ok 1 define error 0 typedef int selemtype 順序棧結構...

資料結構 順序棧

棧是一種只能在一端進行插入或刪除操作的線性表。其中允許進行插入或刪除操作的一端稱為棧頂 top 棧頂是由乙個稱為棧頂指標的位置指示器來指示,它是動態變化的。表的另一端稱為棧底,棧底是固定不變的。先進後出 filo include include define maxsize 100 typedef ...