![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java数据结构与算法
文章平均质量分 68
Colourful.
这个作者很懒,什么都没留下…
展开
-
从尾到头打印链表
题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 举例:已知链表:1->2->3,输出:[3,2,1] 思路:使用栈,栈具有先进后出的特点。 &nbs原创 2021-08-17 14:49:25 · 75 阅读 · 0 评论 -
排序算法之选择排序
选择排序 思想:①从未排序序列中选出最小的数字,放入已排序序列的起始位置。 ② 再从未排序序列中选出最小的数字,放入已排序序列的末尾。 &n原创 2021-08-11 15:17:48 · 72 阅读 · 0 评论 -
红黑树的插入
文章目录红黑树定义红黑树性质红黑树的插入红黑树定义 红黑树(Red Black Tree) 是一种自平衡的二叉查找树,典型用途是实现关联数组,红黑树与AVL树类似,都是在插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。 红黑树查找、插入删除的时间复杂度为O(logn)  原创 2021-06-17 16:12:00 · 1012 阅读 · 1 评论 -
AVL树的旋转
文章目录定义AVL树的旋转左单旋转右单旋转双旋转定义 一棵AVL树可以是空树,也可以是具有下列性质的二叉搜索树:它的左子树和右子树都是AVL树,且左子树和右子树的高度之差的绝对值不超过1(也就是小于等于1)。(右子树高度 - 左子树高度) 节点的平衡因子:给每个节点附加一个数字,给出该节点右子树的高度减去左子树的高度原创 2021-06-07 17:13:25 · 3836 阅读 · 4 评论 -
二叉搜索树
文章目录定义相关算法在二叉搜索树中查找指定的关键码向二叉搜索树中插入一个新的值判断一棵二叉树是否为二叉搜索树定义 二叉搜索树或者是一颗空树,或者是具有下列性质的二叉树:每个节点都有一个作为搜索依据的关键码,所有节点的关键码互不相同。左子树(如果存在)上所有的节点的关键码都小于根节点的关键码。右子树(如果存在)上的所有节点的关键码都大于根节点的关键码左子树和右子树也是二叉搜索树。 &nbs原创 2021-06-05 19:59:42 · 136 阅读 · 0 评论 -
二叉树的创建以及前序、中序、后序、层次遍历
文章目录二叉树的创建前序序列和中序序列创建二叉树中序序列和后序序列创建二叉树二叉树的遍历二叉树的前序遍历递归与非递归实现二叉树的中序遍历递归与非递归实现二叉树的后序遍历递归与非递归实现二叉树的层次遍历二叉树的Z字形遍历二叉树的创建前序序列和中序序列创建二叉树 我们都知道,二叉树的前序遍历规则和中序遍历规则。 前序遍原创 2021-06-04 12:09:08 · 782 阅读 · 1 评论 -
树和二叉树
文章目录树的定义二叉树的定义二叉树的性质满二叉树完全二叉树二叉树的遍历规则树的定义 树是由n(n>=0)个结点组成的有限集合。如果n=0,称为空树;如果n>0则: 有一个特定的称之为根(root)的结点,它只有直接后继,但没有直接前驱。 &nbs原创 2021-06-04 09:58:59 · 269 阅读 · 0 评论 -
排序算法之插入排序
插入排序 对想要排序的元素以插入的方式寻找该元素的适当位置,以达到排序的目的。 思想:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有原创 2021-06-02 15:26:55 · 90 阅读 · 0 评论 -
冒泡排序、快速排序
文章目录冒泡排序冒泡排序的思想代码实现快速排序快速排序的思想普通快速排序(双向划分)快排的改进:随机划分快排的划分:单向划分冒泡排序冒泡排序的思想 冒泡排序的主要思想是:相邻两个元素进行比较,较大的元素放在后面。就像水泡一样,慢慢的浮到最后一个。我们通过一个例子,演示一下冒泡排序: 举例说明冒泡排序:原创 2021-05-14 17:00:53 · 205 阅读 · 0 评论 -
排序算法之归并排序
归并排序 归并排序是利用归并的思想实现的排序方法,该算法采用经典的分治的策略。 下图就是我们归并排序的整体流程,有一个划分的过程,也有一个合并的过程,在合并的时候,会按照数字大小依次排序。我们每进行依次划分,都要进行合并排序。 &nb原创 2021-06-01 19:10:09 · 353 阅读 · 0 评论