C语言-数据结构-栈(静态栈与动态栈)

2023-11-01

一.简介

哔哩哔哩看视频学的,赫斌老师数据结构入门的内容-b站搜索:av6159200(P33),通过学习,能独立把赫斌老师教的敲出来,由于动态栈(链表阉割版)的功能很少,我并没有增加什么其它功能,但是我自己实现了静态栈(数组阉割版),还有就是分享一些我对动态栈,以及静态栈的理解.

二.什么是栈

简介已经说了,栈可以分为静态栈和动态栈.

静态栈是用数组来实现动态栈是用链表来实现.

栈实现的功能就是:先进后出.

打个比喻就是把一块一块的方块放进一个箱子里,等到你不想放,想要从箱子取出来的时候,第一个出来的,就是你最后一次放的,而最后一个出来的,只能是最后一个出来,这就是所谓的先进后出.

具体图解在这里插入图片描述

栈的实现需要确定顶部底部.

静态栈与动态栈的区别:

      静态栈必须提前确定栈的大小(有限的),并且都是连续的.

      动态栈可以无限大小(内存够的情况下),并且是不连续的.

三.动态栈的图解

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
由于图片较多…具体可以链接下载详看:百度网盘

四.函数功能实现的源码

理解不了可以看第三部分的图解

void init(PSTACK);	                                    	//初始化

在这里插入图片描述

void push_stack(PSTACK , int);	                            //入栈(压栈)

在这里插入图片描述

void traversal_output(PSTACK );	                             //遍历输出

在这里插入图片描述

int air(PSTACK );	                              	//判断是否为空

在这里插入图片描述

int pop(PSTACK , int*);	                                    	//出栈

在这里插入图片描述

void empty(PSTACK );	                              //清空栈

在这里插入图片描述

五.源码分享(可复现)

动态栈链接:百度网盘

静态栈链接:百度网盘

六.栈可以应用在那些方面

1.函数调用

2.中断

3.表达式求值(计算器)

4.内存分配

5.缓冲处理

6.迷宫

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

C语言-数据结构-栈(静态栈与动态栈) 的相关文章

随机推荐

  • blender 给某个类型添加自定义属性

    import bpy Int bpy types Ojbect myInt bpy porps IntProperty name test max 10 min 1 default 5 Float bpy types Mesh myFloa
  • sqlite3安装错误 node-pre-gyp http 403

    sqlite3安装错误 如图可以发现 访问 https mapbox node binary s3 amazonaws com sqlite3 v5 0 1 napi v6 win32 x64 tar gz 报错 403 我们用浏览器进去
  • sqli-labs靶机训练(11-15)

    less 11 POST型 1 寻找漏洞类型 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img YrAkcwyg 1641296909427 C Users 84305 AppData Roaming Typora
  • 攻防世界web

    攻防世界web 前言 准备ctf比赛 这里把攻防世界分值低于5分的基本刷了一遍 分值再高刷不动了 练习 view source 没难度知识禁用了右键点击 ctrl u查看源码拿到flag get post 这题没什么好说的 按着提示来就能拿
  • 又一个开源工具搞完了,工作效率直接翻倍

    博客首页 派 大 星 欢迎关注 点赞 收藏 留言 本文由派大星原创编撰 系列专栏 开源专栏 本系列主要输出作者自创的开源项目 作品 低代码生成器平台 大家好 我是派大星 距离上一次开发出开源项目的时间已经过去一段时间了 也不知道大家有没有使
  • 使用本地mysql+linux实现mysql主从同步

    1 配置linux 保证linux已经安装好了mysql 1 1修改该linux配置文件 vim etc my cnf 1 2重启linux的mysql systemctl restart mysqld 1 3使用账户密码登录linux中的
  • Arduino小车资料整理

    目录 一 小车简介 二 材料清单 三 Arduino UNO R3简介及使用说明 四 各模块安装接线及测试 1 驱动模块接线及测试 1 减速直流电机 2 L298N电机驱动模块 3 具体接线 4 代码及测试 2 巡线模块接线及测试 1 TC
  • 解决 font-weight 无效的问题

    近期调页面时有几个 font weight 需要修改 无论怎么调整字体粗细都没有变化 深入研究后总结下文 初探 本地写个例子 代码如下 p class thin This is a paragraph p p class normal Th
  • springboot 定时任务@Scheduled 和 异步@Async

    使用 EnableScheduling开启功能 Configuration EnableScheduling public class ScheduleConfig 编写任务 Component public class Scheduled
  • linux下使用动态壁纸(fantascene)

    让你的linux桌面动起来 幻梦动态壁纸 我也是突发奇想 做了这么一个程序 目前在多个linux下可以运行 支持双屏 理论上说支持mpv gt 27 0 qt gt 5 6的系统版本可编译 ubuntu16 04可以自行删减代码和编译 或者
  • java玫瑰花代码_Java版给爱人表白的玫瑰花程序代码

    1 书写表白语句的frame 渐入功能 package com wanju blessing import java awt Color import java awt Container import java awt Dimension
  • 常用眼底图像数据集简介及下载--糖尿病视网膜病变 EyePacs,APTOS2019,STARE数据集

    1 糖尿病视网膜病变图像介绍 1 微动脉瘤通常出现在病变早期 它是由于眼部毛细血管缺氧导致血管壁变薄 从而在视网膜上呈现出深红色的点状物 2 出血点一般出现在血管附近 它是由于血管阻塞导致血液渗出形成的 呈现暗斑状 3 软性和硬性渗出物的形
  • python中变量,python中变量的概念

    python中变量的概念 在python中 变量就是一种标识符 它是数据的名字 更专业的理解 变量是内存中数据的引用 编程语言里的变量和初中学习代数时的方程变量很相似 前面学习数字类型 bool类型时 我们一直在交互式解释器里进行操作 目的
  • java springboot 实现从数据库查询数据下载为md格式文件

    java springboot 实现从数据库查询数据下载为md格式文件 param param response 功能描述 下载文件 标题 byId getTitle 内容 byId getTextContent 格式 response s
  • 增强型PWM(EPWM)如何输出互补功能?

    1 概念 互补 两根线 输出的PWM 只有一端导通 和死区概念类似 死区时间 指在这段时间 上下都没有输出 带死区的PWM波可以防止上下两个器件同时导通 也就是说 当一个器件导通后关闭 再经过一段死区 这时才能让另一个导通 例如 红色线条的
  • nuxt百度收录

    import cheerio from cheerio export default Global page headers https go nuxtjs dev config head mode universal 修改百度收录 hoo
  • 04 ImageView中图片保存到文件

    最近做的一个小App中的一个功能 把ImageView中的图片保存为一个 jpg文件 如果设备上有SDCard 图片会被保存到SD卡上 如果没有则保存在设备的存储空间中 这里主要包含了两个要点 一是 Android文件保存时文件夹的创建 二
  • detectron2概述

    目录 detectron2框架 configs datasets README md prepare for tests sh prepare panoptic fpn py demo demo py predictor py detect
  • 关于Docker如何安装nginx

    目录 1 Nginx 1 2 安装nginx 2 容器之间相互通信 2 1 两个容器在同一网段 2 2 两个容器在不同网段 1 Nginx Nginx也是一款服务器 我们常用它做如 反向代理 负载均衡 动态与静态资源的分离的工作 反向代理
  • C语言-数据结构-栈(静态栈与动态栈)

    一 简介 在哔哩哔哩看视频学的 赫斌老师数据结构入门的内容 b站搜索 av6159200 P33 通过学习 能独立把赫斌老师教的敲出来 由于动态栈 链表阉割版 的功能很少 我并没有增加什么其它功能 但是我自己实现了静态栈 数组阉割版 还有就