数组 链表

数组:

结构在通过索引进行查询数据是效率比较高,而对于数组插入和删除操作则效率比较低,在第一个位置进行插入数据时,其它数据就需要依次后移,而删除一个数据,则该数据后的数据全部前移。

链表:

为了保证数据插入和删除不会影响其它数据的移动,保证线性开销,所以引出了链表。每个值都不会连续进行存储。链表是由一系列节点组成,每一个节点都有一个链点,就是next链。而next链则会执行下一个node引用,所以我们在插入和删除数据的时候,需要该链表next链的指向地址即可,每个节点不需要内存进行连续存储,这样会减少删除和插入的线性开销。

从逻辑结构上看:

1:数组必须事先定义固定的长度,不能实行动态数据的增减。当数据增加时,可能超出原先定义的元素个数,出现溢出现象。当数据减少时,造成内存浪费。数组中增减数据时需要移动其他数据。

2:链表动态的进行了存储分配,可以适应数据动态的增减,且方便的插入和删除数据。

从内存来看:

1(静态)数组从栈中分配空间,对于程序员来说方便快速,但自由度小。

2链表从堆中分配空间,自由度大,但申请管理比较麻烦

。。。该博文为摘抄  关于动态数组  及  单双向链表  没写  有机会补上

猜你喜欢

转载自blog.csdn.net/lxp199741/article/details/81589950