数据结构和算法
文章平均质量分 59
数据结构和算法(JAVA),记录数据结构和算法的全部知识点,使用JAVA语言实现
Pinker_Q
这个作者很懒,什么都没留下…
展开
-
图解AVL树删除
AVL树删除节点的过程是,先找到该节点,然后进行删除。由于删除节点的位置不同,导致删除后节点进行移动的方式不同。删除节点的位置分为以下4类: 1.删除叶子结点。操作:直接删除,然后依次向上调整为AVL树。 2.删除非叶子节点,该节点只有左孩子。操作:该节点的值替换为左孩子节点的值,然后删除左孩子节点。【左孩子节点为叶子结点,所以删除左孩子节点的情况为第1种情况。】【为什么左孩子节点为叶子节点,...转载 2021-04-12 22:07:20 · 1502 阅读 · 2 评论 -
B树和B+树的插入、删除图文详解
1. B树 1. B树的定义 B树也称B-树,它是一颗多路平衡查找树。我们描述一颗B树时需要指定它的阶数,阶数表示了一个结点最多有多少个孩子结点,一般用字母m表示阶数。当m取2时,就是我们常见的二叉搜索树。 一颗m阶的B树定义如下: 1)每个结点最多有m-1个关键字。 2)根结点最少可以只有1个关键字。 3)非根结点至少有Math.ceil(m/2)-1个关键字。 4)每个结点中的关键字都按照从小到大的顺序排列,每个关键字的左子树中的所有关键字都小于它,而右子树中的所有关键字..转载 2021-04-12 21:39:59 · 440 阅读 · 0 评论 -
平衡二叉查找树(AVL树)
文章目录 AVL树的定义AVL树不平衡的情况左子树的左子树插入结点 (左左)右子树的右子树插入节点 (右右)左子树的右子树插入节点 (左右)右子树的左子树插入节点 (右左)删除结点插入节点更复杂的情况 所有代码测试结果 AVL树的定义 平衡因子 : 树中某结点其左子树的高度和右子树的高度之差 AVL树中的任意一个结点, 其平衡因子的绝对值小于2 AVL树是一种特殊的二叉搜索树 (BST树), 相对于数据极端情况下, 二叉搜索树会退化成为单链表, AVL树定义了旋转操作, 在平衡因子..转载 2021-04-12 21:02:15 · 524 阅读 · 0 评论 -
十大排序算法总结(Java实现)
文章目录一、排序的定义二、术语说明三、算法总结图四、算法比较五、具体算法详解1.冒泡排序(Bubble Sort)2.选择排序(Selection Sort)3.插入排序(Insertion Sort)4.希尔排序(Shell Sort)5.归并排序(Merge Sort)6.快速排序(Quick Sort)7.堆排序(Heap Sort)8.计数排序(Counting Sort)9.桶排序(Bucket Sort)一、排序的定义对一序列对象根据某个关键字进行排序。二、术语说明稳定:如果a原本原创 2020-12-13 20:34:27 · 129 阅读 · 1 评论 -
数据结构-线性表及其实现(JAVA)
文章目录线性表数组实现线性表Java实现数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。线性表逻辑结构:线性表是最常用且最简单的一种数据结构,它是n个数据元素的有限序列。具体实现:实现线性表的方式一般有两种,一种是使用数组存储线性表的元素,即用一组连续的存储单元依次存储线性表的数据元素。另一种是使用链表存储线性表的元素,即用一组任意的存储单元存储线性表的数据元素(存储单元可以是连续的,也可以是不连续的)。 数组实现线原创 2020-09-10 15:07:11 · 815 阅读 · 0 评论