栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c语言实现栈的增删改查

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言实现栈的增删改查

#define _CRT_SECURE_NO_WARNINGS
#include

#define MaxSize 50

typedef struct//定义结构体,数据结构:栈
{
    int data[MaxSize];
    int top;
}Stack;

bool Inits(Stack &s)//初始化栈,默认栈顶为-1,可以存50个元素。

//如果MaxSize是50,那么他的数组空间就是0-49
{
    s.top = -1;
    return true;
}

bool empty(Stack s)//判断栈空如果是返回1
{
    if (s.top == -1)
    {
        return true;
    }
    else
    {
        return false;
    }
}

bool Enstack(Stack& s,int e)//入栈
{
    if (s.top != MaxSize-1)//栈未满可以入栈
    {
         s.data[++s.top] = e;//让栈顶指向新元素,栈顶++
           return true;
    }
    else
    {
        return false;
    }


}
bool destack(Stack& s, int &e)//出栈
{
    if (s.top != -1)

    {
        return false;
    }
    else
    {
    e = s.data[s.top--];//把值给e然后栈顶指针向下移动一个
    }

    
}
bool Prints(Stack s)//打印栈中元素
{
    if (!empty(s))//函数中可以引用其他函数
    {
        printf("%dn", s.data[s.top]);
        s.top--;
    }
    return true;

}

bool Gets(Stack s,int &e)//得到栈内元素并把他赋值给e
{
    if (s.top == -1)//说明栈空,没有元素你去哪取去???
    {
        return false;
    }
    else {
        e=s.data[s.top];//取成功,给主函数个答复
        return true;
    }
}

int main()
{
    Stack s;
    Inits(s);
    int x;
    scanf("%d", &x);
    Enstack(s, x);
    Prints(s);
    Gets(s,x);
    printf("%d", x);
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/384948.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号