常用数据结构的理解
常用数据结构的理解
首先,什么是数据结构?即人们抽象出来的描述现实世界实体的数学模型(非数值计算)及其上的操作(运算),在计算机上的表示和实现。按一定的逻辑结构组成的一批数据,使用某种存储结构将这批数据存储于计算机中,并在这些数据上定义了一个运算集合。
相关文章
常用的数据结构
- 数组: 把相同类型的变量按一定顺序组织起来的数据结构
- 队列: 一种链表结构,它要求在表的前端删除,在表的末端 插入。
- 就像排队取餐,前面的取餐后可以离开,后面的得排队等待取餐。
- 它按照先进先出、后进后出的原则,当队列中没有数据称为空队列。
- 链表: 链表是物理储存单元上非连续、非顺序的储存结构,既可以表示为线性结构,也可以 表示 为非线性结构。它由一系列节点组成,在链表中每一个元素称为节点。每个节点包含两部分,一个是存储元素数据的数据域,一个是下一个节点的指针域。
- 正因如此,链表的插入和删除是很方便的。只需要修改节点的指针
- 树: 树是一种非线性结构,由n(n>0)个有限节点组成有层次关系的集合。
- 二叉树: 每个节点最多含有两个子树
- 完全二叉树:除了最外层的节点,其他各层节点都达到了最大数
- 图: 一个图就是一些顶点的集合,这些顶点通过一系列边结对(连接)。顶点用圆圈表示,边就是这些圆圈之间的连线。顶点之间通过边连接。节点之间的关系是任意的,图中任意两个数据元素之间都有可能相关。
- 无向图邻接矩阵
- 有向图邻接矩阵
- 列表
- 哈希表(Hash): 它是一种散列表,是一种可以通过Key-Value直接访问的数据结构
- 栈: 它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。类似一盒饼干,我们总是先拿出罐子上面的。
- 堆:可以看出一个树的数组对象
- 堆是一颗完全二叉树
- 大顶堆: 某个节点的值不大于父节点的值
- 小顶堆: 某个节点的值不小于父节点的值