顺序表和链表的优缺点比较
顺序表(静态分配)
优点:
(1).结构简单,易于理解;
(2).存储空间连续,方便随机访问表中的每个元素,时间复杂度为O(1);
(3).不需要再为表示节点间的逻辑关系而增加额外的存储空间;
(4).尾插,尾删效率高,时间复杂度为O(1);
(5).CPU缓存利用率高;
缺点:
(1)插入和删除比较慢,时间复杂度为O(N);
(2)长度固定,必须在分配内存之前确定数组长度;
(3)易造成存储空间的利用率低(分配的数组长度过大,就会造成多余的空间得不到利用);
链表(动态分配)
优点:
(1)物理存储单元上非连续,而且采用动态内存分配,能够有效的分配和利用资源;
(2)节点的插入和删除操作简单,不需要内存空间的重组;
缺点:
(1)不能随机访问,只能从头节点开始顺序查找;
(2)数据结构较为复杂,需要大量指针操作,容易出错;