数据结构之数据的存储结构
列表、栈、队列、链表、字典、散列、图和二叉查找树
【列表】
不需在长序列中查找元素或对其进行排序。
【栈】存储结构是:
【后进先出】或者说【先进后出】
【队列】存储结构是:
【先进先出】或者说【后进后出】
【链表】存储结构是:
一组不必相连的内存结构 【节点】,按特定的顺序链接在一起的抽象数据类型。
单链表、双向链表、循环链表。
可用在任何使用一维数组
的情况中。如需随机访问,数组效率更好。
数组使用慢时,可换用链表。
【字典】
以键值
对进行数据存储
【散列】也称哈希表是数组存储技术,散列表的形式存储。
插入、删除和取用数据
都非常快,查找操效率低下。
存在两个键映射为同一个值的碰撞现象。处理方法有:开链法
和线性探测法.
【二叉树和二叉树查找】
树是一种非线性的数据结构,以分层的方式存储数据。
二叉树每个节点的子节点不允许超过两个。一个父节点的两个子节点分别称为左节点和右节点。
二叉查找树(BST)是一种特殊的二叉树,相对较小的值保存在左节点中,较大的值保存在右节点中。这一特性使得查找的效率很高。
遍历BST的方式有三种:
中序遍历(以升序访问树中所有节点,先访问左节点,再访问根节点,最后访问右节点)
先序遍历(先访问根节点,再以同样的方式访问左节点和右节点)
后序遍历(先访问叶子节点,从左子树到右子树,再到根节点)
【图】有向图,无序图
搜索图的算法主要有两种: 深度优先搜索和广度优先搜索。