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

数据结构学习20250612

栈、队列和链表

  • 栈的定义:只允许在一端进行插入和删除的线性表
  • 栈顶:线性表允许插入和删除的一端
  • 栈底:线性表不允许插入和删除的另一端
  • 空栈:不含任何元素的空表
  • 特点:后进先出(LIFO)

栈操作

  • initstack(&S):初始化一个空栈
  • stackempty(S):判断栈是否为空
  • push(&S, x):进栈
  • pop(&S, &x):出栈
  • gettop(S, &x):读栈顶元素
  • destroystack(&S):栈销毁,并释放S占用的存储空间

栈的顺序存储

顺序栈,利用一组地址连续的存储单元存放自栈底到栈顶的数据元素,同时预设一个指针top指示当前栈顶元素的位置
共享栈(两栈共享空间),利用栈底位置相对不变的特征,可以让两个顺序栈共享一个一维数组空间,将两栈的栈底设置在共享空间的两端,两个栈顶向共享空间中间延伸

栈的链式存储

链栈,便于多个栈共享存储空间,采用单链表实现,规定所有的操作在单链表的表头进行,链表没有头节点,lhead指向栈顶元素

队列

  • 对列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表
  • 特点:先进先出(FIFO)
  • 队头:允许删除的一端
  • 队尾:允许插入的一端
  • 空队列:不包含任何元素的空表

队列操作

  • 初始化队列
  • 判断队列是否为空
  • 入队
  • 出队
  • 读队头元素

队列的顺序存储

顺序队列是分配一块连续的存储单元存放队列中的元素,并设两个指针,队头指针和队尾指针
循环队列是当队尾元素溢出时,从头开始存储,形成一种头尾衔接的顺序存储结构

队列的链式存储

链队列是一个同时带有队头指针和队尾指针的单链表,规则是尾进头出

双端队列

双端队列是两端都可以进行出队和入队操作的队列

链表

  • 定义:链表是一种物理存储上非连续,数据元素的逻辑顺序通过链表中的指针链接次序,实现的一种先行存储结构
  • 特点:链表由一系列节点组成,节点在运行时动态生成,每个节点包含存储数据元素的数据域和存储下一个节点地址的指针域
  • 双向链表:与单向链表的区别是节点中有两个节点指针,分别指向前后两个节点。
  • 链表和数组的对比:
    链表是通过节点把离散的数据链接成一个表,通过对节点的插入和删除操作实现对数据的存取。
    数组是通过开辟一段连续的内存来存储数据,这是两者最大的区别。
    数组有起始地址和结束地址,链表是一个圈,没有头尾之分,但是为了方便节点的插入和删除操作会人为规定一个根节点
http://www.xdnf.cn/news/13711.html

相关文章:

  • 无人叉车 AGV 的智能物流枢纽逻辑:对接方式分类、技术原理与场景适配
  • 【android bluetooth 框架分析 04】【bt-framework 层详解 6】【Properties介绍】
  • FEC(Forward Error Correction)前向纠错快速了解
  • 【AS32系列MCU调试教程】硬件调试:JLink 驱动配置与调试技巧
  • 5 Android系统常用debug方法
  • [安卓按键精灵辅助工具]一些安卓端可以用的雷电模拟器adb命令
  • 行为模式-命令模式
  • Dagster 实现数据质量自动化:6大维度检查与最佳实践
  • 工厂模式demo
  • Peiiieee的Linux笔记(1)
  • 基于大模型预测的上睑下垂综合诊疗技术方案
  • 浅析4D-bev标注技术在自动驾驶领域的重要性
  • 数据库更新!万方
  • centos转移mysql的数据存储目录
  • 猎犬:快速 友好的桌面文本搜索软件 支持30+格式与高精度OCR
  • HTTP系列---有状态
  • 在MATLAB命令行执行ros2node 和 ros2subscriber后,执行ros2 topic list,MATLAB卡死
  • 云服务器如何搭建多站点?Nginx多域名部署方案详解 (2025)
  • 中国第七次人口普查100m网格化人口数据集(Tif/分省/分市)
  • 使用 VLC Media Player 轻松提取视频中的音频文件
  • 一分钟部署nginx-公网IP访问内网
  • RED DA认证-EN18031网络安全常见问题以及解答
  • 玛哈特零件矫平机:精密制造中的平整度守护者
  • gRPC 与 JSON 之间的类型映射规则
  • PH热榜 | 2025-06-12
  • odoo CRM中销售管道的自定义与阶段管理
  • 使用Optimization tool优化后禁用windows更新批量的脚本
  • 深入解析Web信息探测与分析技术:网站指纹识别、敏感文件扫描与端口探测实战
  • 《linux2.4内存管理》第 4 章 进程地址空间
  • 执行应用共享内存空间 同步QT进行快速捕获数据流