顺序栈

作者: qianranow | 来源:发表于2021-03-27 08:02 被阅读0次

#include <stdio.h>

#define MaxSize 10

typedef struct {
    int data[MaxSize];
    int top;
} SqStack;

void InitStack(SqStack *s) {
    s->top = -1;
}

int Push(SqStack *s, int e) {
    if (s->top == MaxSize-1) return -1;
    s->data[++s->top] = e;
    return 1;
}

int Pop(SqStack *s, int *e) {
    if (s->top == -1) return -1;
    *e = s->data[s->top--];
    return 1;
}

int GetTop(SqStack s, int *e) {
    if (s.top == -1) return -1;
    *e = s.data[s.top];
    return 1;
}

void StackPrintf(SqStack s) {
    for (int i = s.top; i > -1; i--) {
        printf("%i\n", s.data[i]);
    }
}

int main() {
    SqStack s;
    InitStack(&s);
    Push(&s, 23);
    Push(&s, 3);
    Push(&s, 45);
    Push(&s, 78);
    StackPrintf(s);
    int e = -1;
    Pop(&s, &e);
    Pop(&s, &e);
    GetTop(s, &e);
    printf("%i\n", e);
    return 0;
}

相关文章

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

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

  • 作业帮做-栈结构验证

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

  • C语言实现链栈以及基本操作

    链栈,即用链表实现栈存储结构。链栈的实现思路同顺序栈类似,顺序栈是将数顺序表(数组)的一端作为栈底,另一端为栈顶;...

  • 栈(顺序栈)

    栈:限定只能在表尾进行插入和删除的线性表。 顺序栈:使用数组实现的栈。 栈特性: 允许插入和删除的一端叫栈顶(to...

  • 0x06栈

    a、顺序栈 b、链式栈

  • 【数据结构】【C#】005-栈:💫顺序栈

    C#数据结构:顺序栈 1、自定义顺序栈结构: 顺序栈:测试用例 输出结果: img.jpg 注意: 1、栈也是表结...

  • 6.从尾到头打印链表

    思路:直接顺序打印链表,并入栈,出栈的顺序即为倒序

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

  • 校验出栈顺序

    给定入栈顺序,给出一组出栈顺序,判断是否满足条件

  • js栈的操作

    js模拟栈操作,输入两个数组,一个数组作为元素入栈顺序,另一个数组为出栈顺序,若出栈顺序符合入栈规则返回true

网友评论

      本文标题:顺序栈

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