zoukankan      html  css  js  c++  java
  • 堆栈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 }
     
  • 相关阅读:
    第11组 团队Git现场编程实战
    团队项目-需求分析报告
    团队项目-选题报告
    第二次结对编程作业
    第11组 团队展示
    第一次结对编程作业
    第一次个人编程作业
    第一次博客作业
    JavaScript学习笔记----Window对象
    自学前端开发:模拟Array功能 不是扩展子类
  • 原文地址:https://www.cnblogs.com/tingshuo123/p/7090858.html
Copyright © 2011-2022 走看看