常用数据结构和算法
- 数据结构
数据结构 | java应用 | 特点 |
---|---|---|
数组 | Array | 数组是在内存中开辟一段连续的空间,并在此空间存放元素。元素类型是固定的、长度是固定的、通过角标查询,查询快,增删慢。 |
链表 | LinkedList | 物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 |
栈 | linkedList | 线性结构。先进后出或者后进先出,类似坐电梯,底层是linkedList |
队列 | linkedList | |
散列表(哈希表) | Map等key value结构 | 根据关键码值(Key value)而直接进行访问的数据结构。 |
二叉树 | 多用于查找 | 每个节点最多有两个子树的树结构。顶上的叫根结点,两边被称作“左子树”和“右子树”。 |
堆 | 暂时存放数据 | 队列优先,先进先出 |
跳表 | …… | 增加了向前指针的链表,实质就是一种可以进行二分查找的有序链表。 |
图 | …… | 如果图中任意两点都有路径,则该图是连通图 |
Tird树 |
-
图解数据结构
-
数组
-
链表(单链表,双链表,有序链表)
-
栈
-
队列
-
散列表
-
二叉树
前序遍历:根–>左–>右(1–>2–>4–>5–>3–>6–>7 )
中序遍历:左–>根–>右(4–>2–>5–>1–>3–>6–>7)
后序遍历:左–>右–>根(4–>5–>2–>6–>7–>3–>1)
按层遍历:从上到下,从左到右(1–>2–>3–>4–>5–>6–>7) -
堆
-
跳表
-
图
-
Trid树
-