排列,定在存储器中的连续空间.名单,存储器地址可以是不连续,每一个链表的节点包含原来的内存和下一个节点的信息(单向的一个,双向链表的话,会有两个).
数组优于链表的:
1.内存空间占用的少,由于链表节点会附加上一块或两块下一个节点的信息.可是数组在建立时就固定了.所以也有可能会由于建立的数组过大或不足引起内存上的问题.
2.数组内的数据可随机訪问.但链表不具备随机訪问性.这个非常easy理解.数组在内存里是连续的空间.比方假设一个数组地址从100到200,且每一个元素占用两个字节,那么100-200之间的不论什么一个偶数都是数组元素的地址.能够直接訪问.链表在内存地址可能是分散的.所以必须通过上一节点中的信息找能找到下一个节点.
3.查找速度上.这个也是由于内存地址的连续性的问题.不罗索了.
链表优于数组的:
1.插入与删除的操作.假设数组的中间插入一个元素,那么这个元素后的全部元素的内存地址都要往后移动.删除的话同理.仅仅有对数据的最后一个元素进行插入删除操作时,才比較快.链表仅仅须要更改有必要更改的节点内的节点信息就够了.并不须要更改节点的内存地址.
2.内存地址的利用率方面.无论你内存里还有多少空间,假设没办法一次性给出数组所需的要空间,那就会提示内存不足,磁盘空间整理的原因之中的一个在这里.而链表能够是分散的空间地址.
3.链表的扩展性比数组好.由于一个数组建立后所占用的空间大小就是固定的.假设满了就没法扩展.仅仅能新建一个更大空间的数组.而链表不是固定的,能够非常方便的扩展.
数组与链表的优缺点;
数组:
长处:使用方便 ,查询效率 比链表高。内存为一连续的区域
缺点:大小固定,不适合动态存储,不方便动态加入
链表:
长处:可动态加入删除 大小可变
缺点:仅仅能通过顺次指针訪问,查询效率低
补充:
顺序表的长处:查找方便,适合随机查找
顺序表的缺点:插入、删除操作不方便。由于插入、删除操作会导致大量元素的移动
链接表的长处:插入、删除操作不方便。不会导致元素的移动,由于元素增减,仅仅须要调整指针。
顺序表的缺点:查找方便,不适合随机查找
链表的特性是在中间任何位置加入删除元素的都很的快。不须要移动其他的元素。
链表顾名思义,要把各个元素链接起来才算撒。 通常链表每个元素都要保存一个指向下一个元素的指针(单链表)。 双链表的化每一个元素即要保存到下一个元素的指针,还要保存一个上一个元素的指针。 循环链表则把最后一个元素中保存下一个元素指针指向第一个元素。 数组是一组具有同样类型和名称的变量的集(百度)合。 这些变量称为数组的元素,每一个数组元素都有一个编号,这个编号叫做下标,我们能够通过下标来差别这些元素。数组元素的个数有时也称之为数组的长度。 |
数组在进行查找,排序操作是非常方便;链表不须要连续空间。并且作插入操作方便。
分配空间上也不同,建立过程也不同。 |
链表和数组的本质差异
1 在訪问方式上 数组能够随机訪问当中的元素 链表则必须是顺序訪问,不能随机訪问 2 空间的使用上 链表能够任意扩大 数组则不能 |
版权声明:本文博主原创文章,博客,未经同意不得转载。