在C语言中数组和链表有什么区别?

来源:百度知道 编辑:UC知道 时间:2024/05/29 15:55:39

要说这个区别,你要先知道数据结构。要说清楚数据结构要一本书的内容,所以我只能抽个直接相关的东东来说一下:线性表。
线性表:
逻辑上 是一张二维表,里面有元素和相应元素的位置。
物理上 线性表以两种形式在内存中存放:顺序表和链式表。
这顺序表要求:在内存中连续的内存地址存放。(可看成数组)
而链式表不要求以连续的内存块平存放,它有一个指针域来索引到下一个节点。(链表)

性能上分析:
顺序表(数组)可直接索引到某个元素,而链表只能从链表头(如果为单链表)开始一个一个去找,所以比顺序表要低效。
另外一方面,如果顺序表要删除或插入元素就要移动多个后面的元素,而链表则不用移动元素,只要修改指针域就行了,所以在有删除或修改动作时,链表比较高效。

当然我说的还很不全面,你可以参考一下数据结构这本书的线性表这章。

数组和连表最大的区别是:数组需要定义长度,连表不需要。