常见数据结构,数组、链表、栈、队列、树、堆、图、哈希表
①、数组
优点:
-
按照索引查询元素的速度很快;
-
按照索引遍历数组也很方便。
缺点:
-
数组的大小在创建后就确定了,无法扩容;
-
数组只能存储一种类型的数据;
-
添加、删除元素的操作很耗时间,因为要移动其他元素
②、链表
链表是一种递归的数据结构,它或者为空(null),或者是指向一个结点(node)的引用,该节点还有一个元素和一个指向另一条链表的引用,
这是一种双向链表,当前元素 item 既有 prev 又有 next,不过 first 的 prev 为 null,last 的 next 为 null。如果是单向链表的话,就只有 next,没有 prev。
优点:
-
不需要初始化容量;
-
可以添加任意元素;
-
插入和删除的时候只需要更新引用。
缺点:
-
含有大量的引用,占用的内存空间大;
-
查找元素需要遍历整个链表,耗时。
③、栈
栈按照“后进先出”、“先进后出”的原则来存储数据,先插入的数据被压入栈底,后插入的数据在栈顶,读出数据的时候,从栈顶开始依次读出
④、队列
队列会对两端进行定义,一端叫队头,另外一端就叫队尾。队头只允许删除操作(出队),队尾只允许插入操作(入队)
⑤、树
树是一种典型的非线性结构,它是由 n(n>0)个有限节点组成的一个具有层次关系的集合
⑥、堆
-
堆中某个节点的值总是不大于或不小于其父节点的值;
-
堆总是一棵完全二叉树
⑦、图
图是一种复杂的非线性结构,由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G 表示一个图,V 是图 G 中顶点的集合,E 是图 G 中边的集合
文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览34070 人正在系统学习中
来源:ejinxian
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!