链式存储结构的优点:
- 结点空间可以动态申请和释放。
- 数据元素的逻辑次序靠结点的指针来指示,插入和删除时不需要移动数据元素。
链式存储结构的缺点:
- 存储密度小,每个结点的指针域需额外占用存储空间。当每个结点的数据域所占字节不多时,指针域所占存储空间的比重显得很大。
- 链式存储结构是非随机存取结构。对任一结点的操作都要从头指针依指针链查找到该结点,这增加了算法的复杂度。
存储密度
存储密度是指结点数据本身所占的存储量和整个结点结构中所占的存储量之比,即:
存储密度 = 结点数据本身占用的空间 / 结点占用的空间总量
结点的数据域 a1
占8个字节,地址域占4个字节,所以存储密度 = 8 / 12 = 67%
一般地,存储密度越大,存储空间的利用率就越高。显然,顺序表的存储密度为1 (100%) ,而链表的存储密度小于1。
顺序表与链表的比较
- 顺序表查询快,增删相对慢,预先分配、随机存取
- 链表增删快,查询相对慢,动态分配、顺序存取
源代码
源代码已上传到 GitHub Data-Structure-of-C,欢迎大家来访。
✍ 码字不易,万水千山总是情,点赞再走行不行,还望各位大侠多多支持❤️