为什么要有linked list?
来源:互联网 发布:免费发短信软件 编辑:程序博客网 时间:2024/06/03 07:52
每种数据结构存在,肯定是因为它相比某些数据结构,在一定程度下,在处理数据方面更有优势。
Linked list出现主要是因为Array在某些情况下一些操作不便,才引出Linked List的。
你可以看看下面Array和Linked List的优缺点,你就大概能看出问题来。
从内存存储的角度
- 数组在内存中存储的地址是连续的,而链表是不连续的;
- 数组在初始化的时候,一般大小就被定义好了(当然也可以使用动态数组);而链表则可以根据数据的大小实时分配内存存储,只要系统内存足够,需要多少你就可以分配多少;
- 如果数组初始化大小为1000,而当前系统需要存储的只有10个数据,那么就会有990个内存空间被浪费掉,而链表则没有这样的问题,因为链表是根据你的实际需要,去存储数据;换个角度,如果需要存储1000个数据,但是数组初始化只有10个数据,就会造成多余的数据无法存储;
从数据操作的角度
- 查找:数组(可以随机访问),链表(需要从头遍历)
- 插入:数组(插入时,在后面的元素都要往后移),链表(插入很方便,只要交换一下指针)
- 删除:数组(删除时,在后面的元素都要往前移),链表(删除也很方便,只需要交换一下指针)
0 0
- 为什么要有linked list?
- 为什么要有个BLOG?
- 为什么一定要有标题
- 为什么要有这个博客
- 为什么要有工厂
- 为什么要有注释[转]
- 为什么要有休息日
- 为什么要有Serializable
- 为什么要有外汇储备
- 为什么要有链表
- hibernate为什么要有方言
- 为什么要有领导?
- 为什么要有Serializable
- 为什么要有TIME_WAIT
- 为什么要有KMP算法
- 为什么要有SerialVersionUID?
- 为什么要有标题啊
- 为什么数据库要有主键
- spark性能优化:数据倾斜调优
- 树莓派sip视频电话-1:exosip2ctype+python使用硬件编解码
- 类加载-反射(JAVA灵魂)
- 如何使用httpclient进行NTLM认证登录
- Linux : E: Unable to locate package XXX
- 为什么要有linked list?
- ~/.bash_profile 与~/.bashrc,以及http_proxy,http302
- Android ImageView 正确使用姿势
- JavaGUI
- ural 1820. Ural Steaks -思维题
- 移动端自适应布局----rem字体
- 静态库和共享库
- Map集合
- 欢迎使用CSDN-markdown编辑器