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

嵌入式开发学习日志(数据结构--顺序结构单链表)Day19

一、顺序结构

安装软件命令: sudo apt-get install  (软件名)
安装格式化对齐:sudo apt-get install clang-format
内存泄漏检测工具: sudo apt-get install valgrind
 编译后,使用命令         valgrind ./a.out        即可看内存是否泄露

 1、顺序表的基本操作

        表头结构是可选项,但最好在使用中加上;

2、创建顺序

【.h】中

【.c】 中

 

【主函数中】 

 3、判断数据列表是否满了

 【.c】中

 

 

 4、尾部插入

【主函数中】 

5、遍历成员 

 

 

 6、计算装了几个元素

 

7、判断是不是空数组 

 

8、 查找元素

【.c】中

 【主函数】中

 9、指定位置插入元素;

【.c】中

【主函数中】

 

 10、删除一个元素;

 11、清空列表,结构还在

12、 修改列表中文件;

13、 全部销毁

二、线性表顺序存储的优点,缺点 

1、优点


(1)无需为表中的逻辑关系增加额外的存储空间
(2)可以快速随机访问元素O(1)/

2、缺点


(1)插入,删除元素需要移动元素o(n)
(2)无法动态存储。

 

三、链表(线性表的链式存储)

1、目的:

        解决顺序存储的缺点,插入和删除,动态存储问题;

2、 特点:

       (1) 线性表链式存储结构的特点是一组任意的存储单位存储线性表的数据元素,存储单元可以是连续的,也可以不连续;
       (2)可以被存储在任意内存未被占用的位置上,所以前面的顺序表只需要存储数据元素信息就可以了。在链式结构中还需要一个元素存储下一个元素的地址
        (3)为了表示每个数据元素,a[i]与其直接后继数据元素a[i+1]之间的逻辑关系,                                    对a[i]来说,除了存储其本身的信息外,还需要存一个指示器直接后续的信息。
        (4)我们把存储元素信息的域叫数据域,把存储直接后继位置的域叫指针域。这两部分信息组成数据元素ai的存储映像,叫结点(Node);

3、单向链表 

 

 

  • next指针指向整个结点开始位置
  • 自定义类型不支持嵌套定义,因为不知道分配多大的内存空间;即在typedef srtuct node中,struct node next;不可取                    但*next可取
  • 内存中开辟空间,用指针去接表头结构

 3.1.1创建链表

【.h】中

 

 

 【.c】中

 【主函数中】

 3.1.2判断是否为空链表

3.1.3 头部插入

(1)链表为空(直接将head指向newnode)

 (2) 链表非空

 

【主函数】 

3.1.4获取有效元素的个数

 3.1.5 遍历表中元素

  • 使tmp->next来进行遍历,借助循环 

 

 

3.1.6 查找成员

3.1.7删除成员

 

  • 通过比较tmp下一个的内容来控制,使tmp停于待删结点的前一个结点 

 

 3.1.8尾部插入

【主函数】 

 3.1.9指定位置插入

 

相关文章:

  • 在scala中sparkSQL连接masql并添加新数据
  • 分割一切(SAM) 论文阅读:Segment Anything
  • c++ std库中的文件操作学习笔记
  • QEMU模拟32位ARM实现自定义系统调用
  • CodeBuddy 中国版 Cursor 实战:Redis+MySQL双引擎驱动〈王者荣耀〉战区排行榜
  • RAG之大规模解析 PDF 文档全流程实战
  • 网络协议分析 实验四 ICMPv4与ICMPv6
  • web-ui开源程序是建立在浏览器使用的基础上,旨在使 AI 代理可以访问网站
  • MySQL 学习(八)如何打开binlog日志
  • sqli-labs靶场第四关——“)闭合
  • deepseek梳理java高级开发工程师微服务面试题
  • SQL、Oracle 和 SQL Server 的比较与分析
  • 一次讲清 FP32 / FP16 / BF16 / INT8 / INT4
  • MySQL 8.0 OCP(1Z0-908)英文题库(31-40)
  • UI-TARS Desktop:用自然语言操控电脑,AI 重新定义人机交互
  • YOLO11解决方案之物体模糊探索
  • 自然语言生成在商业智能中的应用实践
  • 【工作记录】Kong Gateway 入门篇之部署及简单测试
  • 基于javaweb的SpringBoot爱游旅行平台设计和实现(源码+文档+部署讲解)
  • 【github】主页显示star和fork
  • 优化营商环境,服务上海“五个中心”建设,北外滩有何举措?
  • OpenAI与微软正谈判修改合作条款,以推进未来IPO
  • 商务部新闻发言人就中美日内瓦经贸会谈联合声明发表谈话
  • 署名文章:从宏观调控看中国经济基本面
  • 《瞭望》周刊社原总编辑、党委书记姬斌逝世,享年67岁
  • 冷冰川谈黑白