![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 75
aqiangzai
一切都是为了心情,现在高兴或以后高兴,开始干吧就现在
展开
-
【数据结构与算法01】栈
写在最前面:所谓数据结构,其实就是表示一组数据的存储方式,元素之间的逻辑关系的统称。计算机物理存储方式通常分为数组存储和链表存储,元素关系通常分为有序无序。根据实际应用需要,我们组合存储方式和元素关系来设计数据结构以满足我们应用的需要。定义:只能通过访问它的一端来实现数据存储和检索的一种线性数据结构。根据存储方式可分为顺序栈(数组实现)和链栈(链表实现)。运算限制:后进先出。基本概念:...原创 2019-03-06 18:30:19 · 255 阅读 · 0 评论 -
【数据结构与算法03】二叉搜索树
定义:它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉搜索树。运算限制:非空左子树的所有节点值小于当前节点值,非空右子树的所有节点值大于当前节点值。基本概念:基本运算:1,查找。2,插入。3,删除。要删除的节点有两个子节点...原创 2019-03-08 23:56:22 · 462 阅读 · 0 评论 -
【数据结构与算法02】队列
定义:只允许在表的一端插入数据,而在表的另一端访问数据。根据存储方式可分为顺序队列和链队列。运算限制:先进先出。基本概念:允许插入的一端称为队尾(rear),允许访问的一端称为队头(front)。基本运算:1::创建一个空的队列。2:判空。3:入队。添加到队尾,修改队尾指针。4:出队。删除队头,修改队头指针。5:读队头数据。顺序队列说明:利用一组地址连续的存...原创 2019-03-06 18:31:26 · 418 阅读 · 0 评论 -
【数据结构与算法04】红黑树
定义:自平衡二叉查找树,每个节点都带有颜色属性,颜色或红色或黑色。运算限制:1节点是红色或黑色。2根节点是黑色。3每个叶节点(NIL节点,空节点)是黑色的。4每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)。5从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。基本概念:左旋就是把原节点摘下来,用原节点的右子节点替换原节点,原节点变成右子节点的...原创 2019-03-12 10:20:54 · 425 阅读 · 0 评论 -
【数据结构与算法06】堆
定义:用二叉树的思想实现的优先级队列,同时它是完全二叉树,即除最后一层以外,其他层都是满元素的。运算限制:参考前面优先级队列。自动排序,同时使用二叉树的存储方式,但不使用二叉树的元素逻辑关系。基本运算: 1,添加。 2:移除。 3:取最大值。1,为了...原创 2019-04-10 16:53:36 · 137 阅读 · 0 评论 -
【数据结构与算法07】哈希表
定义:是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。运算限制:没有限制,这个就是挂腊肠。数组的元素定义为链表,也就是一个横着的数组,每个下标位置挂着一个链表。基本运算: 1,添加。 2:取值。定义一个节点数...原创 2019-04-10 17:56:16 · 153 阅读 · 0 评论 -
【数据结构与算法05】优先级队列
定义:其实就是有序队列。运算限制:自动排序。既然是自动排序那就不需要考虑先进先出的问题了,排序之后就乱了,所以只需要定义排序方式(取最大还是取最小),这里为了简化逻辑,避免再出现队列需要考虑循环使用存储空间的问题,我们把最大值永远放在下标0的位置,出队列时取最小值。当然你也可以反过来。基本运算: 1,添加。 ...原创 2019-04-09 15:23:29 · 1415 阅读 · 0 评论 -
【数据结构与算法08】234树
定义:234树是扩展于二叉树的多叉树,二叉树是一个数据项,两个子节点,234树是最少一个数据项,最多3个数据项,最少2个子节点,最多4个子节点,也就是说234树当只有一个数据项时非叶子节点有且只有2个子节点,2个数据项时3个子节点,3个数据项时4个子节点,子节点数量可以为234,所以叫234树。运算限制:它是平衡树,有序树,添加操作只发生在叶子节点上。看上图,第一个节点有一个数据项70...原创 2019-04-17 18:26:08 · 2457 阅读 · 1 评论 -
【数据结构与算法09】排序算法
public class Sort { /** * 名称:冒泡排序 * 顺序:从小到大(非必须) * 逻辑:循环比较数组中相邻的数,较大的数放在下标较大的位置。比较的时候就会发生移动 * 原则:找到最大的数,放到最右边 * 例子:假如数组为{3,2,1} * 先把3和2比较,换位置{2,3,1},再3和1比较,换位置{2,1,3} * 再2和1比较,换位置{1...原创 2019-04-18 15:24:51 · 98 阅读 · 0 评论