美文网首页C语言数据结构程序员
先进后出——堆栈(Stack)

先进后出——堆栈(Stack)

作者: tingshuo123 | 来源:发表于2017-06-28 17:35 被阅读15次

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

  • 类型名称: 堆栈(Stack)。
  • 数据对象集: 一个有 0 个或多个元素的又穷表。
  • 操作集: 长度为 max_size 的堆栈 SStack, 堆栈元素 itemElementType
  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): 删除并返回栈顶元素;

伪码描述:

#define MAX_SIZE 10  // 存储元素的最大个数
#define ERROE -1
#define bool int
#define True 1
#define Flase 0
// element_type 代表任意基本数据类型

typedef struct{
    element_type data[MAX_SIZE];
    int top;
} stack;

// 初始化一个栈
stack creatc_stack(void)
{
    stack *s = (stack*)malloc(sizeof(stack));
    s->top = -1;
    return s;
}

// 入栈
void push(stack *s, element_type item)
{
    if (s->top < MAX_SIZE-1){
        s->data[(s->top)+1] = item;
        s->top++;
    }
}

// 出栈
element_type pop(stack *s)
{
    element_type n = NULL;
    if (s->top != -1){
        n = s->data[(s->top--)];
    }
    return n;
}

// 判断堆栈是否为空
bool is_empty(stack *s)
{
    bool flag = Flase;
    if (s->top == -1){
        flag = True;
    }
    
    return flag;
}

// 判断堆栈是否已满
bool is_full(stack *s, int MAX_SIZE)
{
    bool flag = Flase;
    if (s->top == MAX_SIZE-1){
        flag = True;
    }
    
    return flag;
}

相关文章

  • 先进后出——堆栈(Stack)

    堆栈的抽象数据类型描述: 类型名称: 堆栈(Stack)。 数据对象集: 一个有 0 个或多个元素的又穷表。 操作...

  • Java中的Stack

    Stack Stack是一种先进后出的数据结构:只能往堆栈(Stack)最后压入(push)元素,最后进去的必须最...

  • java 模拟一个栈

    堆栈的特点:先进后出

  • 数据结构-栈

    数据结构-栈 定义 栈(英语:stack)又称为堆栈或堆叠,栈作为一种数据结构,它按照先进后出的原则存储数据,先进...

  • (Boolan) STL与泛型编程第三周笔记

    c++stack(堆栈)是一个容器的改编,它实现了一个先进后出的数据结构(FILO)使用该容器时需要包含#incl...

  • (Boolan) STL与泛型编程第三周笔记

    c++stack(堆栈)是一个容器的改编,它实现了一个先进后出的数据结构(FILO) 使用该容器时需要包含#inc...

  • python 栈

    栈(stack)又称之为堆栈是一个特殊的有序表,其插入和删除操作都在栈顶进行操作,并且按照先进后出,后进先出的规则...

  • 记-数据结构与算法-链表、栈、队列的基本认识

    堆栈作为两个线性数据结构,运用较多。 栈 Stack是一种先进后出的数据结构 队列 Queue是一种先进先出的数据...

  • Windows堆栈

    Windows堆栈特点 * 先进后出 * 向低地址扩展 什么是堆栈平衡(重点) Windows中的堆栈。我一块普通...

  • 数据结构(三)-栈和队列

    1.栈 先进后出,后进先出 栈(stack)又称堆栈,是仅允许在表的一端进行插入和删除操作的线性表。这一端被称为栈...

网友评论

    本文标题:先进后出——堆栈(Stack)

    本文链接:https://www.haomeiwen.com/subject/mciucxtx.html