链表和数组有什么区别
2015-07-16 11:07
232 查看
数组和链表有以下几点不同:
(1)存储形式:数组是一块连续的空间,声明时就要确定长度。链表是一块可不连续的动态空间,长度可变,每个结点要保存相邻结点指针。
(2)数据查找:数组的线性查找速度快,查找操作直接使用偏移地址。链表需要按顺序检索结点,效率低。
(3)数据插入或删除:链表可以快速插入和删除结点,而数组则可能需要大量数据移动。
(4)越界问题:链表不存在越界问题,数组有越界问题。
说明:在选择数组或链表数据结构时,一定要根据实际需要进行选择。数组便于查询,链表便于插入删除。数组节省空间但是长度固定,链表虽然变长但是占了更多的存储空间。
(1)存储形式:数组是一块连续的空间,声明时就要确定长度。链表是一块可不连续的动态空间,长度可变,每个结点要保存相邻结点指针。
(2)数据查找:数组的线性查找速度快,查找操作直接使用偏移地址。链表需要按顺序检索结点,效率低。
(3)数据插入或删除:链表可以快速插入和删除结点,而数组则可能需要大量数据移动。
(4)越界问题:链表不存在越界问题,数组有越界问题。
说明:在选择数组或链表数据结构时,一定要根据实际需要进行选择。数组便于查询,链表便于插入删除。数组节省空间但是长度固定,链表虽然变长但是占了更多的存储空间。
相关文章推荐
- 简述strcpy、sprintf与memcpy的区…
- 设置地址为0x67a9的整型变量的值为…
- sizeof和strlen的区别
- C中的volatile用法
- stdin、stdout、stderr 的说明
- 使用do{}while(0)的好处
- 逻辑与和短路与的区别
- 逻辑与和短路与的区别
- 环境变量,JRE全称, unicode…
- 字面量
- c语言中字符串中的双引号
- 实例解说Linux中fdisk分区使用方法
- inline与__inline__的区别
- C语言的inline
- /dev/mem
- vim 快捷键
- select用法
- ios7 ios8 定位兼容性问题解决方案
- fork与vfork的区别
- Uber优步北京第一组奖励政策