堆棧的抽象數據類型描述:
- 類型名稱: 堆棧(Stack)。
- 數據對象集: 一個有 0 個或多個元素的又窮表。
- 操作集: 長度為
max_size
的堆棧S
∈ Stack, 堆棧元素 item ∈ ElementType。
stack creatc_stack(int max_size)
: 生成空堆棧, 其最大長度為max_size
;bool is_full(stack *s, int max_size)
: 判斷堆棧 S 是否已滿;void push(stack *s, element_type item)
: 將元素item
壓入堆棧;bool is_empty(stack *s)
: 判斷堆棧S
是否為空;element_type pop(stack s)
: 刪除并返回棧頂元素;
偽碼描述:
1 #define MAX_SIZE 10 // 存儲元素的最大個數
2 #define ERROE -1
3 #define bool int
4 #define True 1
5 #define Flase 0
6 // element_type 代表任意基本數據類型
7
8 typedef struct{
9 element_type data[MAX_SIZE];
10 int top;
11 } stack;
12
13 // 入棧
14 void push(stack *s, element_type item)
15 {
16 if (s->top < MAX_SIZE-1){
17 s->data[(s->top)+1] = item;
18 s->top++;
19 }
20 }
21
22 // 出棧
23 element_type pop(stack *s)
24 {
25 element_type n = NULL;
26 if (s->top != -1){
27 n = s->data[(s->top--)];
28 }
29 return n;
30 }
31
32 // 判斷堆棧是否為空
33 bool is_empty(stack *s)
34 {
35 bool flag = Flase;
36 if (s->top == -1){
37 flag = True;
38 }
39
40 return flag;
41 }
42
43 // 判斷堆棧是否已滿
44 bool is_full(stack *s, int MAX_SIZE)
45 {
46 bool flag = Flase;
47 if (s->top == MAX_SIZE-1){
48 flag = True;
49 }
50
51 return flag;
52 }
?
?
?