数据结构--数据结构的组织⽅法
⾯试题:常见的数据结构的优缺点?(数据结构+算法)
解答:
数据结构:简单地说,数据结构是以某种特定的布局⽅式存储数据的容器。这种“布局⽅式”决定了数据结构对于某些操作是⾼效的,⽽对于其他操作则是低效的。⾸先我们需要理解各种数据结构,才能在处理实际问题时选取最合适的数据结构。
常见的数据结构:栈、队列、数组、链表、树、图、字典树(⾼效树形结构)、散列表(哈希表)
Java常⽤数据结构(图解):
图⽚源⾃于:1、栈和队列:
2、栈(stack):先进后出,删除与加⼊均在栈顶操作
栈也称为堆栈,是⼀种线性表。
堆栈的特性: 最先放⼊堆栈中的内容最后被拿出来,最后放⼊堆栈中的内容最先被拿出来, 被称为先进后出、后进先出。
3、队列(先进先出):
队列也是⼀种特殊的线性表。不同于栈所服从的先进后出的原则,队列的原则是先进先出。
队列在队头做删除操作,在队尾做插⼊操作:
4、数组和链表:
5、图(Graph): 是由顶点和连接顶点的边构成的离散结构。在计算机科学中,图是最灵活的数据结构之⼀,很多问题都可以使⽤图模型进⾏建模求解。
6、树(Tree):树形结构是⼀种层级式的数据结构,由顶点(节点)和连接它们的边组成。 树类似于图,但区分树和图的重要特征是树中不存在环路。
树形结构被⼴泛应⽤于⼈⼯智能和复杂算法,它可以提供解决问题的有效存储机制。
图解以⼆叉树结构为例:
数组和链表Root - 根节点
Parent - ⽗节点
Child - ⼦节点
Leaf - 叶⼦节点
Sibling - 兄弟节点
7、字典树(Trie):
字典树,也称为“前缀树”,是⼀种特殊的树状数据结构,对于解决字符串相关问题⾮常有效。它能够提供快速检索,主要⽤于搜索字典中的单词,在搜索引擎中⾃动提供建议,甚⾄被⽤于IP的路由。
典型应⽤是⽤于统计,排序和保存⼤量的字符串(但不仅限于字符串)。主要思想是利⽤字符串的公共前缀来节约存储空间。
详解: