首页 > 其他分享 >5-顺序栈的操作

5-顺序栈的操作

时间:2024-07-10 17:32:50浏览次数:7  
标签:顺序 return SqStack ElemType top MaxSize 操作 false

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

typedef int ElemType;
/**/
#define  MaxSize 50
/**/
typedef struct {
    ElemType  data[MaxSize];
    /* top:数组索引从0开始 = MaxSize-1 */
    int top;
} SqStack;

/*初始化栈*/
void InitStack(SqStack *S){
    S->top=-1;
}

/*判断顺序栈空*/
bool StackEmpty(SqStack S){
    /*栈空*/
    if(S.top ==-1){
        return  true;
    }
    /*栈非空*/
    else{
        return  false;
    }
}
/*进栈操作*/
bool Push(SqStack *S,ElemType x){
    /*栈满*/
    if(S->top ==MaxSize-1){
        return  false;
    }
    /*先+1m,再送元素入栈*/
    S->data[++S->top]=x;
    return  true;
}
/* 出栈操作 */
bool Pop(SqStack *S, ElemType *x) {
    /* 栈空 */
    if (S->top == -1) {
        return false;
    }
    /* 先取栈顶元素,然后栈顶指针减1 */
    *x = S->data[S->top--];
    return true;
}
/*读取栈顶元素*/
bool GetTop(SqStack S,ElemType *x){
    /*栈空*/
    if(S.top ==-1){
        return  false;
    }
    /*读取栈顶元素*/
    *x=S.data[S.top];
    return true;
}
int main() {


    return 0;
}

标签:顺序,return,SqStack,ElemType,top,MaxSize,操作,false
From: https://www.cnblogs.com/chengqiang521/p/18294632

相关文章

  • 你真的懂多线程吗?多线程 并行处理 CPU 操作系统
    了解多线程、并行处理首先需要了解什么CPU、CPU核数、操作系统CPU物理数即电脑拥有的物理CPU数量,普通电脑一般只有一个CPU插槽,也就是只有一个物理CPU。我们日常说的CPU,就是指封装好的一个物理CPU,作为商品进行售卖。但在编程讨论时,某些情况下,我们说的CPU含义又是指其中一个运算......
  • 51单片机嵌入式开发:7、 STC89C52RC 外部中断INT0和INT1 操作
    STC89C52RC外部中断INT0和INT1操作1外部中断1.1外部中断1.2中断介绍2STC89C52外部中断2.1外部中断引脚2.2外部中断寄存器说明3STC89C52外部中断演示3.1电平触发外部中断3.2边沿触发外部中断3.3Protues仿真4外部中断总结1外部中断1.1外部中断单片......
  • 在Linux中,系统的开机启动顺序是什么?
    在Linux中,系统的开机启动顺序是一个复杂但有序的过程,它涉及从硬件自检到用户登录的多个阶段。以下是Linux系统开机启动顺序的详细说明:一、BIOS自检与启动设备选择加载BIOS:BIOS(基本输入输出系统)是计算机启动时的第一个软件。它负责在硬件和软件之间提供接口,进行开机自检(POST),检......
  • java类的加载顺序及复杂案例(阿里)
    一.无继承关系的情况下在Java中,类的初始化顺序涉及到多个方面,包括静态变量、静态初始化块、实例变量、实例初始化块(也称为构造器初始化块或初始化块)以及构造器的执行顺序。这里是一个详细的顺序说明:静态变量和静态初始化块:当类被加载到JVM时,类的静态成员(静态变量和静态初......
  • MyBatisPlus 实现数据库 CURD 操作
    BaseMapper接口方法介绍BaseMapper中提供了CRUD方法,具体方法如下://插入一条记录intinsert(Tentity);//根据entity条件,删除记录intdelete(@Param(Constants.WRAPPER)Wrapper<T>wrapper);//删除(根据ID批量删除)intdeleteBatchIds(@Param(Constants.COLLEC......
  • Windows LAPS(Local Administrator Password Solution)是一种由微软提供的工具和解决方
    WindowsLAPS(LocalAdministratorPasswordSolution)是一种由微软提供的工具和解决方案,旨在管理Windows操作系统中本地管理员账户的密码。它的设计初衷是提高系统安全性,特别是防止在企业环境中多台计算机上使用相同的本地管理员密码所带来的安全风险。特点和工作原理个性化密......
  • 远程线程注入的英文全称是 Remote Thread Injection,简称通常是 RTI。远程线程注入是一
    远程线程注入的英文全称是RemoteThreadInjection,简称通常是RTI。远程线程注入(RemoteThreadInjection)是一种利用操作系统的特性,在一个进程的上下文中执行代码的技术。它通常涉及以下基本步骤和原理:获取目标进程句柄:首先,注入进程需要获取目标进程的句柄(handle),这可以通过......
  • DPAPI(Data Protection API)是Windows操作系统提供的一种加密API,用于帮助开发者保护用户
    DPAPI(DataProtectionAPI)在其设计上是相对安全的,但在使用过程中仍然可能存在一些潜在的漏洞或安全考虑:物理访问:如果攻击者能够物理访问受保护数据的存储设备(如硬盘或内存),并且拥有系统管理员权限,他们可能能够通过直接访问加密密钥或拦截解密过程来获取敏感信息。恶意软件......
  • [Java SE] 字节操作工具类:ByteUtils
    0引言与嵌入式软件数据交互过程中,必然涉及各种的、大量的字节操作场景。如:16进制与10进制、2进制间的转换,字符串、byte数组与int之间的转换等。故此有此核心工具类的沉淀。1ByteUtils依赖<properties> <!--编程提效工具--> <lombok.version>1.18.22</lombok.version>......
  • 在 PowerShell 中,你可以使用一些命令来管理打印机驱动的导入和导出操作。通过这些 Pow
    更高级的PowerShell自动化打印机迁移,可以考虑以下步骤和技术:自动化打印机迁移流程批量导出和导入打印机配置使用PowerShell脚本批量导出和导入多个打印机的配置。可以结合循环和数组来处理多个打印机。powershellCopyCode#批量导出打印机配置$printers=Get-Printe......