首页 > 其他分享 >6-栈的链式存储类型

6-栈的链式存储类型

时间:2024-07-10 17:33:26浏览次数:16  
标签:存储 ElemType 栈顶 next StackNode 链式 类型 节点 指针

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

typedef int ElemType;

/*栈的链式存储类型*/
typedef struct  StackNode{
    /*数据域*/
    ElemType  data;
    /*指针域*/
    struct  StackNode *next;
} StackNode,*LinkStack; /*栈类型定义*/


/**
 *  在栈顶插入元素e
 * @param S   *S 是栈顶指针
 * @param e
 */
void Push(LinkStack *S, ElemType e) {
    // 生成新的节点
    StackNode *p = (StackNode *) malloc(sizeof(StackNode));
    if (p == NULL) {
        printf("内存分配失败!\n");
        exit(1);
    }
    p->data = e;     // 设置新节点的数据
    p->next = *S;    // 将新节点的 next 指向当前的栈顶节点
    *S = p;          // 更新栈顶指针,使其指向新节点
}
/* 出栈操作 */
bool Pop(LinkStack *S, ElemType *e) {
    /*头节点 空*/
    if (*S == NULL) {
        return false; /* 栈空,不能出栈 */
    }
    StackNode *p = *S; /* 临时指针指向栈顶节点 */
    *e = p->data;      /* 将栈顶元素赋值给e */
    *S = p->next;      /* 更新栈顶指针 */
    free(p);           /* 释放栈顶节点 */
    return true;
}


int main() {


    return 0;
}

标签:存储,ElemType,栈顶,next,StackNode,链式,类型,节点,指针
From: https://www.cnblogs.com/chengqiang521/p/18294634

相关文章

  • 常见数据库类型和选取详解
    数据库是用于存储、检索和管理数据的系统。它们可以根据数据模型的不同被分类为不同类型。以下是一些常见的数据库类型和它们的选取详解:1.关系型数据库(RDBMS)特点:使用表格(tables)来组织数据。基于严格定义的数据模型和关系。支持SQL(结构化查询语言)进行数据查询和操作。常......
  • vue3中关于指定props的复杂ts类型
    如果要对props的数据进行指定类型,基本类型可以直接使用类型约束,复杂类型可以使用PropType进行约束interfaceItemInterface{title:stringcode:stringstatus:numbericon:string}constprops=defineProps({type:String,userId:String,currentItem......
  • 面试官:Java对象引用都有哪些类型?
    哈喽,大家好......
  • TypeScript的类型谓词与控制流分析
    目录ts封装类型判断的问题类型谓词TypeScript的“控制流分析”ts封装类型判断的问题在union.d.ts中全局声明一个DataTypedeclaretypeDataType=|"RegExp"|"Object"|"Array"|"Function"|"String"|"Boolean"|"......
  • healthd中充电类型的识别
    LA.UM.9.15.2.C3/system/core/healthd/BatteryMonitor.cpphealthd中chg是AC还是usb充电读取的是/sys/class/power_supply/usb/typeBatteryMonitor::PowerSupplyTypeBatteryMonitor::readPowerSupplyType(constString8&path){staticSysfsStringEnumMap<int>suppl......
  • 解密本地会话存储:前段开发必备!sessionStorage和localStorage
    sessionStorage、localStorage:本地存储、本地会话window.sessionStorage、window.localStorage:方法一样注意:数据名称、数据具体值,必须加上引号,除非是变量,或者表达式,否则出错localStorage永久存储,关闭浏览器,本地存储都不会消失(只针对相同的浏览器)能多个相同的页面共享数据......
  • Ceph--分布式存储
    目录一、存储基础1.单机存储设备2.单机存储的问题3.商业存储解决方案4.分布式存储(软件定义的存储SDS)5.分布式存储的类型二、Ceph概述1.Ceph简介2.Ceph优势3.Ceph架构4.Ceph核心组件5.OSD存储引擎6.Ceph数据的存储过程7.Ceph版本发行生命周期8.Ceph集......
  • Simple WPF: WPF实现一个MINIO等S3兼容对象存储上传文件的小工具
    最新内容优先发布于个人博客:小虎技术分享站,随后逐步搬运到博客园。创作不易,如果觉得有用请在Github上为博主点亮一颗小星星吧!目的之前在阿里云ECS99元/年的活动实例上搭建了一个测试用的MINIO服务,以前都是直接当基础设施来使用的,这次准备自己学一下S3兼容API相关的对象存储开......
  • 顶会FAST24最佳论文|阿里云块存储架构演进的得与失-5.其他话题分享
    4.1可用性威胁与解决方案挑战1:BlockServer故障影响众多VD问题描述:单个BlockServer的故障可能会影响到多个虚拟磁盘(VDs)的正常运作,这是由于传统架构中BlockServer承担了过多的职责,其稳定性直接关系到大量VD的服务连续性。解决方案:联合BlockManager(双层控制节点)。通过引......
  • 顶会FAST24最佳论文|阿里云块存储架构演进的得与失-3.EBS架构演进历程
    上图展示了阿里云EBS(ElasticBlockStorage)服务自2012年以来的发展时间线,概括了其三代产品的关键特性、技术集成及硬件升级的历程。2012-EBS1发布:设计特点:EBS1标志着阿里云开始采用计算与存储分离的设计哲学。它通过直接映射虚拟磁盘(VDs)为后端存储服务器上的64MiB......