首页 > 其他分享 >数据结构——栈及相关操作

数据结构——栈及相关操作

时间:2024-01-21 15:13:58浏览次数:25  
标签:return SqStack top 栈及 bool 操作 false 数据结构 data

#include<bits/stdc++.h>

#define MaxSize 10
#define ElementType int

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

void InitStack(SqStack &S){
    S.top = -1;
}

bool StackEmpty(SqStack &S){
    if (S.top == -1)
    {
        return true;
    }
    return false;
}

bool Push(SqStack &S,ElementType x){
    if(S.top == MaxSize - 1){
        printf("Stack is full!");
        return false;
    }
    S.top++;
    S.data[S.top] = x;
    return true;
}

bool Pop(SqStack &S,ElementType &x){
    if(StackEmpty(S)){
        return false;
    }
    x = S.data[S.top];
    S.top--;
    return true;
}

bool Get_TopElem(SqStack &S,ElementType &x){
    if(StackEmpty(S)){
        return false;
    }
    x =S.data[S.top];
    return true;
}

bool print_Stack(SqStack &S){
    if(StackEmpty(S)){
        return false;
    }else{
        for(int i=S.top;i>=0;i--){
            printf("%d\n",S.data[i]);
        }
        return true;
    }
}

void test(){
    SqStack S;
    InitStack(S);
    Push(S,1);
    Push(S,2);
    Push(S,3);
    print_Stack(S);
}

int main()
{
    test();
    return 0;
}

标签:return,SqStack,top,栈及,bool,操作,false,数据结构,data
From: https://www.cnblogs.com/humanplug/p/17977877

相关文章

  • oracle导入表批量更新操作
    1、把excel的数据整理成跟数据库存放呼叫相应的样式2、把excel文件另存为*.txt或*.csv文件,最好是*.csv文件,容易对数据做修改3、把转换好的*.txt或*.csv文件上传至数据库中(1)打开工具(tools)菜单-->文本导入器(TextImporter),导入转换好的文件,可以把标题名的复选框去掉4、选择对......
  • 最少交换次数 置换环 LeetCode 2471. 逐层排序二叉树所需的最少操作数目
    voidMain(){ varroot=newTreeNode(1) { left=newTreeNode(3) { left=newTreeNode(7), right=newTreeNode(6) }, right=newTreeNode(2) { left=newTreeNode(5), right=newTreeNode(4) } }; varr=newSolution().Minimu......
  • 【数据结构】详谈队列的顺序存储及C语言实现
    循环队列及其基本操作的C语言实现前言大家好,很高兴又和大家见面啦!!!在上一篇内容中,我们在介绍完队列的基本概念、重要术语以及基本操作后,又回顾了一下数据结构的三要素——数据的逻辑结构、数据的存储结构以及数据的运算。队列这种数据结构我们已经介绍了它的逻辑结构以及数据运算......
  • 【MySQL 8+】CRUD等操作修改数据库的表后,数据库中表相关信息与数据库工具所展示的信息
    相关转载:①mysql8.0数据库中表的行数不显示,大小也不显示_-CSDN问答②MySQL8.0存储表的行数和修改日期不自动更新的问题_mysql表插入数据,但是修改日期无值-CSDN博客=============================================================个人总结:本人一开始上手的就是MySQL8+的版......
  • 盘点编写 sql 上的那些骚操作(针对mysql而言)
    前言咋说呢,最近交接了一个XXX统计系统到我手上,点进去系统主页,看了下实现了哪些功能,页面看着很简单就那么几个统计模块,本来想着就那么几张报表的crud来着,看了下代码也还好体量也不大,于是乎美滋滋的随波逐流了,后来出现了一个bug说什么数据统计的不对,想着快速给他改掉,顺着控制层,一路摸......
  • Linux操作系统简介:为何成为全球开发者热门选择?
    Linux是一种自由和开放源代码的操作系统。这意味着任何人都可以查看、修改和分发Linux的源代码,而不需要支付任何费用。这种开放性使得Linux能够快速地发展和进步,吸引了全球数以万计的开发者共同参与其中,形成了一个庞大的开源社区。那么,Linux究竟是什么?它又是如何影响我们的生活的......
  • C++11原子变量:线程安全、无锁操作的实例解析
     在C++11中,原子变量(std::atomic)提供了一种线程安全的方式来操作共享变量。下面是一个简单的例子,演示了C++11原子变量的用法。#include<iostream>#include<atomic>#include<thread>std::atomic<int>counter(0);//声明一个原子整数变量voidincrementCounter(int......
  • C# 字符串操作指南:长度、连接、插值、特殊字符和实用方法
    字符串用于存储文本。一个字符串变量包含由双引号括起的字符集合示例://创建一个string类型的变量并赋予一个值stringgreeting="Hello";如果需要,一个字符串变量可以包含多个单词:示例:stringgreeting2="Nicetomeetyou!";字符串长度在C#中,字符串实际上是一......
  • [操作系统] 打印进程树 pstree
    打印进程树简介这是jyy老师的操作系统课程的M1实验,为了弥补一些欠缺的操作系统相关的知识。在这里实现的的pstree并不是严格的按照实验要求而设计的(一个原因是按要求实现的代码不可以公开),这里会看到一些不一样的简单实现,比如直接运行,没有命令行可选参数,输出格式会有所不同......
  • Git必知必会基础(11):撤销操作
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/10854115.html数据准备 说明:下面对file的操作,都可以用通配符gitadd<file>...比如:gitadd*.txt gitrestore<file>...比如:gitrestore--staged*.txt 修改文件(已提交过,文件已在本地仓库中)撤销:对......