当前位置: 首页 > 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外面打印出来

相关文章:

  • Linux进程间通信方式
  • TypeScript教程
  • python爬虫可能遇到的小bug
  • 【RK3588嵌入式图形编程】-SDL2-渲染文本
  • CSS 文档流:元素排列的底层逻辑与布局控制
  • stm32-ADC
  • 明远智睿SD2351核心板:多接口融合,破解边缘计算难题
  • 关于强化学习小记
  • 玩转 SpringCloud - 快速构建分布式系统详解
  • 第十六届蓝桥杯康复训练--5
  • 排列与二进制
  • 力扣刷题记录-二叉树展开为链表
  • 【2025】基于springboot+vue的教务/课程/成绩管理系统设计与实现(源码、万字文档、图文修改、调试答疑)
  • Agent Team 多智能体系统解析
  • Python 魔术方法深度解析:__getattr__ 与 __getattribute__
  • Springboot之RequestContextHolder 学习笔记
  • CANFD芯片在辐射环境中的技术演进
  • 【数学建模】最大最小值模型详解
  • Spring的基本用法
  • 服务器负载均衡
  • 十八把网站做扇子/成都网站制作费用
  • 苏州建设网站市政中标项目/培训学校网站
  • 微信网站怎么做的好处/我有广告位怎么找客户
  • 北京景网站建设/竞价推广的企业
  • 服务器2003系统如何建设网站/seo博客推广
  • 网站推广的优化/上海seo网络优化