数组
定义
数组是一组内存位置固定,元素之间间隔相同的连续数据。
优缺点
优点
由于数组的内存位置固定并且是连续的,我们可以快速又方便的查找一个数组中的任意一元素。
访问数组中的元素:
数组名称[元素下标]
缺点
由于数组的内存位置固定并且是连续的,我们无法快速插入和删除元素。一次插入或删除元素就会使数组有很大的波动。(插入或删除一个元素时,这个元素后面的其它元素都需要后移/前移,会用上循环)
链表
定义
链表就是用来解决数组有的问题的数据结构。它的每一个元素不一定存储在连续的空间内。数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表的每一个存储单元(类似于一个元素被存放的格子)中会包含两部分:值域和链域。值域就是存储真正的数据的地方。一个存储单元的值域可以有多个不同类型的变量。链域就是存放该元素后下一个元素的地址的空间。因为链表中的元素不一定连续,所以必须用一些空间来存放该元素的下一个元素的地址。
链表的第一个指针叫做头指针。链表的最后一个指针叫做尾指针。
程序定义链表:
struct node{
int data;//值域(data这个变量可以换成其它名称)
char words;//同上
int next;//链域(现在暂时不用指针)(next这个变量可以换成其它名称)
}a[100];
优缺点
优点
插入和删除元素非常方便。只需要改变几个元素的链域即可做到插入和删除元素。
缺点
访问元素的时候非常麻烦,需要从头到尾找到该元素。
感谢阅读。