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

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

 一、gdb调试

 
(一)一般调试步骤与命令
        1、gcc -g (调试版本,内含调试信息与源码;eg:gcc -g main.c linklist.c)

        2、gdb a.out(调试可执行文件,eg:gdb ./a.out)

        3、b fun.c:36 设置断点,运行到这个位置,程序自动暂停

        (b :100 默认停在main.c的100行;

           b fun.c : 36  停在fun.c的36行

           b 函数名    eg: b InserPosLinkList)

        4、 r  运行(出现页面要输入则输入)

        5、n 执行下一步  步过(如果是函数,直接调用结束)

             s  步入自定义函数(系统函数不入)

        6、使用p命令,查看变量或指针等数据

        (p  变量:显示变量值,eg:p len

           p  指针:看地址,eg:p *data)

        7、q命令 退出(y)

(二)找段错误(无下断点的地方)
        1、gcc -g  (加上调试选项-g,eg:gcc main.c linklist.c -g)

        2、gdb a.out (调试可执行文件,eg:gdb ./a.out)

        3、按  r(run)  直接开始运行

        4、重现错误

        5、where 找出段错误的位置(出现栈结构信息,从下往上看,找到第一个不是自己写的往后退一个)

    eg:#0(第一个不是自己写的,往后退一个)

            #1(此处出现段错误)

            #2

二、链表的一般操作 

1、修改链表中的元素

 

2、 查找中间值

 

.3、查找倒数第k个元素;

 

 

4、逆序输出

5、尾插入

 6、 指定插入

7、销毁链表·

 

三、顺序表和链表 优缺点

1、存储方式:

顺序表是一段连续的存储单元
链表是逻辑结构连续物理结构(在内存中的表现形式)不连续
2、时间性能

查找 顺序表O(1)
 链表  O(n)
插入和删除
顺序表 O(n)
链表   O(1)
3、空间性能

顺序表 需要预先分配空间,大小固定
链表, 不需要预先分配,大小可变,动态分配           数据 + 指针域

4、循环列表

简单的来说,就是将原来单链表中最有一个元素的next指针指向第一个元素或头结

点,链表就成了一个环,头尾相连,就成了循环链表。circultlar linker list.
        注意非空表,和空表。多数会加入头结点。
        原来结束的条件是 p->next != NULL ------->>>>> p-next != Head 

http://www.xdnf.cn/news/6228.html

相关文章:

  • [python] Python单例模式:__new__与线程安全解析
  • sqlilabs-right-Less-32(宽字节注入)
  • 自定义列甘特图,原生开发dhtmlxgantt根特图,根据数据生成只读根特图,页面展示html demo
  • 面试题-复合
  • JS,ES,TS三者什么区别
  • 【docker】--容器管理
  • GpuGeek全栈AI开发实战:从零构建企业级大模型生产管线(附完整案例)
  • 2025年Flutter初级工程师技能要求
  • fiftyone-数据库配置和config与app_config配置文件
  • 视频编解码学习十二之Android疑点
  • Git 用户名与邮箱配置全解析:精准配置——基于场景的参数选择
  • 关于并发编程AQS的学习
  • 为什么go语言中返回的指针类型,不需要用*取值(解引用),就可以直接赋值呢?
  • 什么是函数重载?为什么 C 不支持函数重载,而 C++能支持函数重载?
  • 电商平台自动化
  • 基于 Spring Boot 瑞吉外卖系统开发(十五)
  • 【MoveIt 2】使用 MoveIt 任务构造器(MoveIt Task Constructor)进行拾取和放置
  • Docker 常见问题及其解决方案
  • NLP的基本流程概述
  • uni-app vue3版本打包h5后 页面跳转报错(uni[e] is not a function)
  • 使用ECS搭建云上博客wordpress(ALMP)
  • 零基础用 Hexo + Matery 搭建博客|Github Pages 免费部署教程
  • [操作系统] 策略模式进行日志模块设计
  • OkHttp连接池
  • 5月13日日记
  • 《社交应用动态表情:RN与Flutter实战解码》
  • 场景以及八股复习篇
  • 数据清洗ETL
  • 【Python 算法零基础 2.模拟 ④ 基于矩阵】
  • 【starrocks】StarRocks 常见 HTTP 操作与导入错误排查指南