链式存储结构怎么用C语言写,数据结构学习笔记——堆栈之链式存储结构(c语言实现)...

2023-05-16

栈的链式存储结构使用单链表实现,同线性表一样,链式存储结构的堆栈在存储空间的利用上显得更加灵活,只要硬件允许一般不会出现溢出的情况。但链式栈相对于顺序栈稍显麻烦,若所需堆栈空间确定,顺序栈显得方便一些。关于链式和顺序式的选择视具体情况而定。

1.栈的链式存储结构:

7def0e6d45954398e53934746f93033a.png

代码示例:

typedef int Status;

typedef int ElemType;

//结点

typedef struct StackNode {

ElemType data; //结点数据域

struct StackNode *next;//结点指针域

}StackNode,*StackLinkPtr;

//链栈的数据结构

typedef struct LinkStack {

StackNode *top;//栈顶结点

int count;//元素个数

}LinkStack;

2.进栈:

97e4cea73ec70fc1cda7259e9ee05d0e.png

① :数据装入新结点,并将结点加入链表

②~③:栈顶指向新结点(更新栈顶指针指向)

代码示例:

Status push(LinkStack *stack,ElemType e)

{

if (!stack)

{

return 0;

}

StackLinkPtr newnode=(StackLinkPtr)malloc(sizeof(StackNode));//为结点申请内存空间

newnode->data=e;//数据装入结点

newnode->next=stack->top;//将当前栈的栈顶元素赋给新结点的后继,即将newnode加入链表

stack->top=newnode;//栈顶指向newnode(更新栈顶指针指向)

stack->count++;

return 1;

}

3.出栈:

e540bf9e9b959b229b7e62c9016ff33b.png

①~②:top指针后移

代码示例:

Status pop(LinkStack *stack,StackNode *gettop)

{

StackNode *p=stack->top;

if (!stack&&stack->count)

{

return 0;

}

//弹出

gettop->data=p->data;//栈顶数据给e

stack->top=p->next;//top指针下移

free(p);

stack->count--;

return 1;

}

完整代码地址:https://download.csdn.net/download/luotuoxiansheng/10758620

以上就是对栈的链式存储结构的学习与分享

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

链式存储结构怎么用C语言写,数据结构学习笔记——堆栈之链式存储结构(c语言实现)... 的相关文章

  • 日记-致我那易逝的时光

    9月 28日 第一次在机房里写日记 xff0c 踩着这几百块钱的电脑桌 xff1b 看着这几十块钱的显示屏 xff1b 敲着这几块钱的键盘 xff1b 烧着这几毛钱的 Central Processing Unit xff1b 捏着这几分钱
  • linux node安装教程

    官网下载 http nodejs cn 解压 tar xvf node v10 14 1 linux x64 tar gz mv node v10 14 1 linux x64 node 环境变量配置 vim etc profile exp
  • 洛谷P1230智力大冲浪 题解

    题目描述 小伟报名参加中央电视台的智力大冲浪节目 本次挑战赛吸引了众多参赛者 xff0c 主持人为了表彰大家的勇气 xff0c 先奖励每个参赛者m元 先不要太高兴 xff01 因为这些钱还不一定都是你的 xff1f xff01 接下来主持人
  • 根据hash值找到bt种子的磁力下载链

    根据hash值找到bt种子的磁力下载链 画皮2 hash E5757D533B3690774519E6A80021E43C03A58C0B 磁力 下载链接 如下 xff1a magnet xt 61 urn btih E5757D533B3
  • 操作系统中的P-V操作(转)

    信号量是最早出现的用来解决进程同步与互斥问题的机制 也可实现进程通信 xff0c 包括一个称为信号量的变量及对它进行的两个原语操作 信号量为一个整数 xff0c 我们设这个信号量为 xff1a sem 很显然 xff0c 我们规定在sem大
  • Linux使用storcli工具查看服务器硬盘和raid组信息

    1 简介 MegaCli 是LSI公司官方提供的SCSI卡管理工具 xff0c 由于LSI被收购变成了现在的Broadcom xff0c 所以现在想下载MegaCli xff0c 需要去Broadcom官网查找Legacy产品支持 xff0
  • 四元数运动学笔记(5)IMU驱动的运动误差方程

    1 扩展卡尔曼滤波EKF 1 1线性化卡尔曼滤波 1 2偏差微分方程的推导 1 3线性化卡尔曼滤波的流程 1 4 离散EKF 2 误差状态的运动方程 2 1连续时间的IMU系统动态方程 2 1 1相关变量 2 1 2真实状态运动方程 tru
  • 静态分析:IDA逆向代码段说明 text、idata、rdata、data

    通常IDA对一个PE文件逆向出来的代码中 xff0c 存在四个最基本的段text idata rdata data xff0c 四个段为PE文件的结构中对应的段 一 text段 xff1a 该段位程序代码段 xff0c 在该段一开始就可以看
  • web前端——html基础笔记 NO.14{颜色值,长度值}

    颜色值 在网页中的颜色设置是非常重要 xff0c 有字体颜色 xff08 color xff09 背景颜色 xff08 background color xff09 边框颜色 xff08 border xff09 等 xff0c 设置颜色的
  • 无人机行业的机遇与挑战

    无人机行业是现如今正在蓬勃发展的一个行业 xff0c 现在已经成为了一个比较成熟的行业 xff0c 且无人机在如今的作用也是无比重要的 xff0c 它已经成功的应用在包括军用民用等各个方面了 这一次我们就来探索一下 xff0c 无人机在未来
  • linux bash bad substitution,shell 中bad substitution错误

    今天在学习linux写shell脚本的时候 xff0c 碰到了一个bad substitution错误 脚本的内容是输入一个文件名 xff0c 创建出三个文件名 43 日期 今天 xff0c 昨天 xff0c 前天 的文件 有错误的代码如下
  • OpenStack精华问答 | OpenStack都有哪些基础服务?

    戳蓝字 CSDN云计算 关注我们哦 xff01 关于 OpenStack 的探讨几乎从未间断 xff0c 从 2010年10月份一个版本正式发布至今 xff0c OpenStack 在 8年发展历程中 xff0c 成为了最有争议的那一个 今
  • VirtualBox解决主机和虚拟机之间ping不通

    VirtualBox在开启虚拟机的时候开启两个网卡 xff0c 分别为Host only模式和桥接模式 xff0c 注意主机的防火墙一定要关闭 xff0c 否则虚拟机ping不通 此时 xff1a 1 虚拟机能ping通主机 xff0c p
  • root切换用户时遭遇"cannot change directory to /home/xxx: Permission denied"

    系统 xff1a centos5 x 以前我安装mysql时 新建用户的命令是这样的 shell gt groupadd mysql shell gt useradd g mysql mysql shell gt cd usr local
  • ROS知识(12)----cv_bridge依赖opencv版本的问题

    cv bridge默认依赖的oencv版本是2 4 8 xff0c 如果安装了新的opencv版本 xff0c 比如2 4 11 xff0c 那么在编译cv bridge时候会提示无法找到opencv 2 4 8 so的库 为解决这个问题
  • C# 环境

    C 环境 在这一章中 xff0c 我们将讨论创建 C 编程所需的工具 我们已经提到 C 是 Net 框架的一部分 xff0c 且用于编写 Net 应用程序 因此 xff0c 在讨论运行 C 程序的可用工具之前 xff0c 让我们先了解一下
  • cmdb项目-2

    1 命令插件异常处理 43 日志采集 1 为了更清楚发送客户端收集信息的状态 xff0c 优化返回api的数据 xff0c 变为字典存储 状态 错误信息 数据 xff0c 因为每个插件的每种系统下都要这个返回值我们将他单独做成类 lib B
  • cmdb项目-1

    1 什么是cmdb 配置管理数据库 存储基础设备的各种信息配置等 CMDB可以存储并自动发现整个IT网络上的各种信息 xff0c 比如一个IT网络上有多少台服务器 多少存储 设备的品牌 资产编号 维护人员 所属部门 服务器上运营什么操作系统
  • cmdb项目-3

    1 cmdb资产审计 2 stark组件使用 快速完成网站的一个组件 使用方式与django的admin系统类似 仅仅将model注册 就可以生成对model增删改查的页面 当然这里还包括了模糊搜索 排序 批量操作等等 1 拷贝并注册sta
  • 什么是网络操作系统?网络操作系统具有那些基本功能?

    1 网络操作系统可以理解为网络用户与计算机网络之间的接口 xff0c 他是专门为网络用户提供操作接口的的系统软件 xff0c 除了管理计算机的软件和硬件资源 xff0c 具备单机操作系统所有的功能外 xff0c 还具有向网络计算机提供网络通

随机推荐