数据结构顺序栈

数据结构顺序栈,第1张

顺序栈的抽象类型表示及相关运算(C语言实现) 文章目录
  一.顺序栈抽象类型定义
  二.顺序栈的基本运算

1.顺序栈的抽象类型定义

#define MAXSIZE 100
#define NULLSTACK 1
#define OK 1
#define ERROR 0

typedef int Elemtype;
typedef struct {
    Elemtype data[MAXSIZE];
    int top;   //栈顶指针
} SeqStack;

2.顺序栈的初始化

int InitStack(SeqStack *s) {

    s->top = 0;            //设置栈顶为0初始化空栈
    return OK;

}

3.判空

int EmptyStack(SeqStack *s) {

    if (s->top == 0) {
        return NULLSTACK;
    }

    return ERROR;

}

4.进栈

int PushStack(SeqStack *s, Elemtype edata) {

    if (s->top == MAXSIZE - 1)//判断栈满
        return ERROR;
    else {//入栈
        s->top++;//指针上移
        s->data[s->top] = edata;//数据入栈
        return OK;
    }

}

5.出栈

int PopStack(SeqStack *s) {

    if (EmptyStack(s))//判栈空
        return ERROR;
    else {
        s->top--;//指针下移出栈
        return OK;
    }

}

6.取栈顶元素

Elemtype GetTop(SeqStack *s) {

    if (EmptyStack(s)) //栈空返回异常
        return ERROR;
    else
        return s->data[s->top];

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/676182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存