封装基于 BinaryTreeOperations 的 红黑树(一种自平衡的二叉查找树)。 除了提供 BinaryTreeOperations 中的部分基础接口外,增加按键的插入 和 按键或节点指针的删除操作。 在阅读本文前,您应该先了解二叉树中的旋转是怎么回事(相关文章很多且简单,笔者不再赘述)。 ...
分类:
其他好文 时间:
2020-02-09 23:51:14
阅读次数:
59
封装基于 BinaryTreeOperations 的 AVL 树(一种自平衡的二叉查找树)。 除了提供 BinaryTreeOperations 中的部分基础接口外,增加按键或节点指针的添加、删除操作。 在阅读本文前,您应该先了解 AVL 树中的旋转是怎么回事(相关文章很多且简单,笔者不再赘述)。 ...
分类:
其他好文 时间:
2020-02-09 18:54:59
阅读次数:
92
如下图:在二叉查找树中,搜索节点19是否存在 代码实现: 测试结果: ...
分类:
Web程序 时间:
2020-02-08 17:19:30
阅读次数:
131
红黑树是什么? 其实也是平衡二叉树,只是给每个节点标了红黑颜色 为什么需要红黑树? 红黑树其实基础还是二叉查找树,只是因为二叉查找树很容易出现不平衡的情况,最坏情况相当于O(n),红黑树和AVL树应运而生,AVL树的话,因为平衡度要求是[-1,1]太严格,所以插入和删除的时候的效率并不是很高,比不上 ...
分类:
其他好文 时间:
2020-02-06 01:13:39
阅读次数:
75
二叉查找树(二叉搜索树、二叉排序树)的创建、增、删、查、改。 main.cpp: #include <iostream> #include "BinarySearchTree.h" using namespace std; int main() { BinarySearchTree<int> bst ...
分类:
其他好文 时间:
2020-02-02 00:53:27
阅读次数:
88
二叉查找树(BST)具备什么特性呢?1.左子树上所有结点的值均小于或等于它的根结点的值。2.右子树上所有结点的值均大于或等于它的根结点的值。3.左、右子树也分别为二叉排序树。查找结点里面的值 的方式就是二分查找的思想 查找次数就是树的高度 二叉查找树可以任意地构造 向一方倾斜的二叉树是不平衡的,查询 ...
分类:
其他好文 时间:
2020-01-31 18:55:12
阅读次数:
121
#include <bits/stdc++.h> #include <stdio.h> #include <stdlib.h> #include <queue> using namespace std; const int maxn = 110; struct Node{ int data; int ...
分类:
其他好文 时间:
2020-01-29 16:18:25
阅读次数:
84
线索二叉树 由于具有N个节点的二叉查找树有N+1的NULL指针,因此在二叉查找树中指定给指针信息的空间的一半被浪费了。 若一个节点有一个NULL左孩子,我们使它的左儿子指向它的 中缀前驱(inorder predecessor) ,若一个节点有一个NULL右孩子,我们让它的右儿子指向它的 中缀后继( ...
分类:
其他好文 时间:
2020-01-29 14:31:16
阅读次数:
82
#include <bits/stdc++.h> #include <stdio.h> #include <stdlib.h> #include <queue> using namespace std; struct node{ int data; node *left; node *right; ...
分类:
其他好文 时间:
2020-01-29 14:28:32
阅读次数:
74
#include <bits/stdc++.h> #include <stdio.h> #include <stdlib.h> #include <queue> using namespace std; const int maxn = 1010; int temp[maxn],initial[ma ...
分类:
其他好文 时间:
2020-01-29 14:18:41
阅读次数:
70