堆栈C语言实现


堆栈的抽象数据类型描述:

  • 类型名称: 堆栈(Stack)。
  • 数据对象集: 一个有 0 个或多个元素的又穷表。
  • 操作集: 长度为 max_size 的堆栈 S ∈ Stack, 堆栈元素 item ∈ ElementType。
  1. stack creatc_stack(int max_size): 生成空堆栈, 其最大长度为 max_size
  2. bool is_full(stack *s, int max_size): 判断堆栈 S 是否已满;
  3. void push(stack *s, element_type item): 将元素 item 压入堆栈;
  4. bool is_empty(stack *s): 判断堆栈 S 是否为空;
  5. 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 }

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM