项目开发日报表
项目名称 | 苏嵌实训-嵌入式 linux C 第六天 |
---|---|
今日进度以及任务 | 学习数据结构链表的使用 |
任务完成情况 | 课堂任务完成 |
开发中出现的问题汇总 | 无 |
未解决问题 | 对链表不是很快就能上手,不熟练 |
开发收获 | 对单链表的使用更加熟悉 |
其他 | 无 |
课堂内容
数据结构
- 嵌入式方向需掌握的数据结构
栈、队列、链表、二叉树、平衡二叉树、红黑树、哈希表、图 - 数据结构推荐书籍
大话数据结构、CSDN - 数据结构的作用
管理数据的存与取
链表
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
-
定义
1.n个节点离散分配
2.彼此通过指针相连
3.每个节点只有一个前驱节点,每个节点只有一个后续节点, 首节点没有前驱节点,尾节点没有后续节点。 -
动态管理
使用时分配 -
为什么需要链表
数组是静态存储,空间利用效率不高 -
动态内存和静态内存的比较
静态内存是系统自动分配的,由系统自动释放。
静态内存是在栈内分配的。
动态内存是由程序员手动分配的,手动释放。
动态内存是在堆分配的