当前位置: 首页 > news >正文

Linux-数据结构-双向链表与栈

一.双向链表剩余操作

【1】定义函数指针类型,查找不同类型的数据

【2】删除

【3】修改

【4】销毁

传入二级指针的意义:

二.栈

【1】栈的基本概念


        栈是限定仅在表尾进行插入和删除操作的线性表。
        先进后出、后进先出
        

        栈顶:允许操作的一端
        栈底:不允许操作的一端
        入栈,出栈。
    顺序栈    链式栈
    30+2\5
    1.创建            CreateSeqStack
    2.销毁            DestroySeqStack
    3.判断是否为空栈    IsEmptySeqStack
    4.判断是否为满栈    IsFullSeqStack
    5.压栈            PushSeqStack
    6.出栈            PopSeqStack

【2】seqstack.h

【3】seqstack.c

(1)创建

与链表相同需要规定栈的大小

(2)销毁

这里也要注意释放顺序

(3)入栈

top是指下一个要插入的地方

(4)出栈

删除栈顶的元素

(5)判断是否为空/满

(6)获取栈顶元素(打印栈元素)和大小

三.栈的练习1

练习:判断(){}【】是否匹配

【1】.h

sym用来存储左符号,'[','{','('

linenum用来记录错误的行数

colnum用来记录错误的列数

【2】主函数

fp读取文件内容,fgets读取每一行的内容,num用来记录行数

循环结束时,栈为空,文件正确,没空就是左符号出现问题

【3】do_check函数

定义data用于存储左符号,并记录它的行列号

获取到右符号时

1.如果没有左符号,则此右符号出错

2.如果左右符号匹配,则将左符号移除

3.如果不匹配,右符号出错,且左符号在while外面打印出来

http://www.dtcms.com/a/84803.html

相关文章:

  • Linux进程间通信方式
  • TypeScript教程
  • python爬虫可能遇到的小bug
  • 【RK3588嵌入式图形编程】-SDL2-渲染文本
  • CSS 文档流:元素排列的底层逻辑与布局控制
  • stm32-ADC
  • 明远智睿SD2351核心板:多接口融合,破解边缘计算难题
  • 关于强化学习小记
  • 玩转 SpringCloud - 快速构建分布式系统详解
  • 第十六届蓝桥杯康复训练--5
  • 排列与二进制
  • 力扣刷题记录-二叉树展开为链表
  • 【2025】基于springboot+vue的教务/课程/成绩管理系统设计与实现(源码、万字文档、图文修改、调试答疑)
  • Agent Team 多智能体系统解析
  • Python 魔术方法深度解析:__getattr__ 与 __getattribute__
  • Springboot之RequestContextHolder 学习笔记
  • CANFD芯片在辐射环境中的技术演进
  • 【数学建模】最大最小值模型详解
  • Spring的基本用法
  • 服务器负载均衡
  • 机器学习——Numpy的神奇索引与布尔索引
  • JWT 认证机制
  • 第十三章 : Names in Templates_《C++ Templates》notes
  • 使用Gitee Go流水线部署个人项目到服务器指南
  • 稳定运行的以Oracle NoSQL数据库为数据源和目标的ETL性能变差时提高性能方法和步骤
  • 2025年01月03日微创网络(杭州银行外包)前端面试
  • 香橙派连接摄像头过程
  • 深入剖析 RocketMQ 的 ConsumerOffsetManager
  • RK3568开发笔记-egtouch触摸屏ubuntu系统屏幕校准
  • vue3中,通过获取路由上的token直接进入首页,跳过登录页面