数组是链表吗分配在一块连续的數据空间上因此在分配空间时必须确定大小;链表是一块不连续的动态空间,通过指针来连接因此长度可变。
1)可以利用偏移地址来訪问元素效率高,为O(1)
1)插入和删除元素不需要移动其余元素,效率高为O(1);
因此对于经常插入和删除的操作数据结构采用链表或者使用二叉搜索树。
链表和数组是链表吗嘟可用来存放指定的数据类型
链表的特性是在中间任意位置添加删除元素的都非常的快,不需要移动其它的元素通常链表每一个元素嘟要保存一个指向下一个元素的指针(单链表)。双链表的话每个元素即要保存到下一个元素的指针还要保存一个上一个元素的指针。循环链表则把最后一个元素中保存下一个元素指针指向第一个元素
C++语言中可以用数组是链表吗处理一组数据类型相同的数据,但不允许动态定义数组是链表吗的大小即在使用数组是链表吗之前必须确定数组是链表吗的大小。而在实际应用中用户使用数组是链表吗之前有时无法准确确定数组是链表吗的大尛,只能将数组是链表吗定义成足够大小这样数组是链表吗中有些空间可能不被使用,从而造成内存空间的浪费 A-1. 数组是链表吗必须事先定义固定的长度(元素个数)不能适应数据动态地增减的情况。当数据增加时可能超出原先定义的元素個数,出现溢出现象;当数据减少时造成内存浪费。数组是链表吗中插入、删除数据项时需要移动其它数据项。 A-2. 链表动态地进行存储汾配可以适应数据动态地增减的情况,且可以方便地插入、删除数据项 B-1. (静态)数组是链表吗从栈中分配空间, 对于程序员方便快速,但是自甴度小 B-2. 链表从堆中分配空间, 自由度大但是申请管理比较麻烦.
在动态数组是链表吗中,如果我们要在某一个位置添加或者删除一个元素剩丅的每个元素都要相应地往前或往后移动。如果该动态数组是链表吗中的元素很多那么,每当我们添加或删除一个元素后需要移动的え素就非常多,因此效率就比较低。 |