2021-07-28

顺序栈的初始化和基本函数

背景

王道的数据结构代码书适合笔试,但本人喜欢调试代码以深入理解数据结构,在大佬的博客发现了可以直接run的C++代码,燕过留痕。
参考链接: 顺序栈的基本函数C++实现.

代码实现

/*
 * @Description: 王道的堆栈基本函数P66
 * @Version: 
 * @Autor: Lizn
 * @Date: 2021-07-28 15:07:37
 * @LastEditors: Lizn
 * @LastEditTime: 2021-07-29 09:27:00
 */
#include <stdio.h>
#include <stdlib.h>
//定义最大栈容量
#define  MAX 7  
//转成和王道兼容
typedef int ElemType;
 
typedef struct//顺序栈
{   //栈的数据
    ElemType data[MAX];
    //栈顶
    int top;
}SqStack;
 
/**
 * @description: 堆栈初始化
 * @param {*}
 * @return {*}
 * @author: Lizn
 */
SqStack InitStack()
{
    SqStack s;
    s.top = -1;
    return s;
}

/**
 * @description: 判断堆栈是否空
 * @param {*}
 * @return {*}
 * @author: Lizn
 */
int StackEmpty(SqStack s)
{
    if(s.top == -1)
        return 0;
    else
        return 1;
}
 
/**
 * @description: 入栈
 * @param {SqStack} &s 堆栈主体
 * @param {ElemType} x 栈值
 * @return {*}
 * @author: Lizn
 */
void Push(SqStack &s,ElemType x)
{
    if(s.top == MAX-1)              //进栈的时候必须判断是否栈满 
        printf("stack full\n"); 
    s.data[++s.top] = x;//栈顶先+1,后入栈
}
 
/**
 * @description: 出栈
 * @param {SqStack} &s堆栈主体
 * @return {ElemType} 被吐出的栈值
 * @author: Lizn
 */
ElemType Pop(SqStack &s)
{
    if(s.top == -1)             //出栈的时候必须判断是否栈空 
        printf("stack empty\n");
    ElemType x;
    x = s.data[s.top--];//栈顶先出栈,后-1
    return x;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值