美文网首页
栈的顺序存储结构

栈的顺序存储结构

作者: 我有一只碗 | 来源:发表于2018-01-25 11:08 被阅读0次

栈的结构定义如下

typedef struct
{
    int data[MAXSIZE];
    int top;
} Stack;

它是一种先进后出(FILO)的数据结构,所有的操作如下

// 操作结果:初始化一个栈
void Init(Stack *s)
{
    s->top = -1;
}

// 操作结果:向栈s放入一个元素e
int Push(Stack *s, int e)
{
    // 栈满
    if (s->top == MAXSIZE - 1)
    {
        return ERROR;
    }
    s->data[++(s->top)] = e;
    return OK;
}

// 操作结果:从栈s弹出一个元素并放入e指向的内存
int Pop(Stack *s, int *e)
{
    // 栈为空
    if (s->top == -1)
    {
        return ERROR;
    }
    *e = s->data[(s->top)--];
    return OK;
}

测试结果说明

int main()
{
    Stack *s = (Stack*)malloc(sizeof(Stack));
    Init(s);
    Push(s, 1);
    Push(s, 2);
    Push(s, 3);
    Push(s, 4);
    Push(s, 5);
    Push(s, 6);
    int *p = (int*)malloc(sizeof(int));
    while (Pop(s, p))
    {
        printf("%d\n", *p);
    }
}
$ gcc stack.c
$ ./a.out
6
5
4
3
2
1

入栈顺序为1,2,3,4,5,6
出栈顺序为6,5,4,3,2,1

相关文章

  • 顺序存储结构栈 共享栈 链式存储结构栈

  • 基于顺序存储/链式存储设计栈结构

    基于顺序存储/链式存储设计栈结构 栈限定性数据结构,先进后出。 顺序存储栈 链式存储栈

  • 数据结构之栈的链式存储结构

    之前写了栈的顺序存储结构,对栈的定义和操作进行了说明 数据结构之栈的顺序存储结构 现在接着写栈的链式存储结构 栈的...

  • 数据结构基础--顺序栈

    顺序栈的概念:顺序栈是栈的顺序实现。顺序栈是指利用顺序存储结构实现的栈。采用地址连续的存储空间(数组)依次存储栈中...

  • 数据结构的各种代码

    第 02 章 线性表 顺序存储结构 链式存储结构 第 03 章 栈与队列 顺序栈 链栈 两栈共享空间 循环队列 链...

  • iOS常用数据结构

    1.顺序存储结构栈

  • 数据结构面试题(三)

    1、 常用数据结构简介 a、数组:顺序存储,随机访问 链表:链表存储,顺序访问b、栈,分为栈顶和栈底,遵循先...

  • 04栈和队列(特殊的线性表)

    1.栈 1.栈 栈:栈是限定仅在表尾进行插入和删除操作的特殊的线性表。线性表按照存储结构分有顺序存储结构实现的顺序...

  • 作业帮做-栈结构验证

    顺序栈操作验证 实验目的 掌握栈的顺序存储结构; 验证栈的操作特性; 掌握顺序栈的基本操作实现方法。 实验内容 建...

  • 顺序存储/链式存储设计栈结构

    一、顺序存储1.1 定义常量及结构 1.2 栈方法实现 二、链式存储2.1 定义常量及结构 2.2 栈方法实现

网友评论

      本文标题:栈的顺序存储结构

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