美文网首页
数据结构(动态链表和静态链表的区别)

数据结构(动态链表和静态链表的区别)

作者: 烈焰德玛 | 来源:发表于2019-02-14 11:21 被阅读1次

动态链表即上面的链表(https://www.jianshu.com/p/722b6e9d336c)

动态链表和静态链表的共同点是:数据之间"一对一"的逻辑关系都是依靠指针(静态链表中称"游标")来维持.

动态链表跟静态链表的区别:

静态链表

使用静态链表存储数据,需要预先申请足够大的一整块内存空间,也就是说,静态链表存储数据元素的个数从其创建的那一刻就已经确定,后期无法更改。

比如,如果创建静态链表时只申请存储 10 个数据元素的空间,那么在使用静态链表时,数据的存储个数就不能超过 10 个,否则程序就会发生错误。

不仅如此,静态链表是在固定大小的存储空间内随机存储各个数据元素,这就造成了静态链表中需要使用另一条链表(通常称为"备用链表")来记录空间存储空间的位置,以便后期分配给新添加元素使用,如图 2 所示。

这意味着,如果你选择使用静态链表存储数据,你需要通过操控两条链表,一条是存储数据,另一条是记录空闲空间的位置。

动态链表

使用动态链表存储数据,不需要预先申请内存空间,而是在需要的时候才向内存申请。也就是说,动态链表存储数据元素的个数是不限的,想存多少就存多少。

同时,使用动态链表的整个过程,你也只需操控一条存储数据的链表。当表中添加或删除数据元素时,你只需要通过 malloc 或 free 函数来申请或释放空间即可,实现起来比较简单。

参考资料(http://data.biancheng.net/view/165.html)

相关文章

  • 静态链表及C#实现

    静态链表 静态链表是用数组模拟动态链表。 静态链表结构描述 首先,静态链表使用数组来模拟动态链表。数组存放一个节点...

  • iOS知识复习笔记(19)---数据结构和算法1

    数组和链表的区别 数组静态分配内存,链表动态分配内存 数组内存中连续,链表不连续 数组元素在栈区,链表在堆区 数组...

  • 链表

    数组和链表的对比 前面提到的动态数组,栈和队列,底层依托的都是静态的数组这节涉及到的链表才是真正的动态数据结构 数...

  • 动态链表与静态链表

    动态链表与静态链表 1. 静态链表 静态链表概述 从他的意义上讲,静态链表像是对没有指针的语言缺陷而产生这么一个补...

  • 2019-12-04 Java-LinkedList源码解读

    @TOC 1、链表数据结构 链表分为单向链表和双向链表,他们的区别在于,单向链表只能单向寻址,而双向链表可以双向寻...

  • 数据结构(动态链表和静态链表的区别)

    动态链表即上面的链表(https://www.jianshu.com/p/722b6e9d336c) 动态链表和静...

  • 常见的数据结构

    常见的数据结构有: 数组 链表单链表、双向链表、循环链表、双向循环链表、静态链表 栈顺序栈、链式栈 队列普通队列、...

  • 最基础的动态数据结构:链表

    什么是链表 链表是一种线性结构,也是最基础的动态数据结构。我们在实现动态数组、栈以及队列时,底层都是依托的静态数组...

  • 数据结构——线性表

    线性表分为顺序存储结构和链式存储结构(单链表,静态链表,循环链表,双向链表)。 单链表(**一种动态结构,所占空间...

  • Java常用类库与技巧-集合

    一 数据结构常见问题 数组和链表的区别;链表的操作,如反转,链表环路检测,双向链表,循环链表相关操作;队列,栈的应...

网友评论

      本文标题:数据结构(动态链表和静态链表的区别)

      本文链接:https://www.haomeiwen.com/subject/rknseqtx.html