一.二叉排序树产生原因 为什么要有二叉排序树这种数据结构的产生?对于一个既要排序、又要支持高效的查找、插入和删除操作的数据元素集合,将其组织成一个什么样的数据结构能够满足要求?我们对于排序顺序表、排序单链表和散列表这几种数据结构进行分析: (1)排序顺序表,可以采用折半查找法,时间效率为O(log2 ...
分类:
编程语言 时间:
2017-09-17 11:42:39
阅读次数:
204
Broken BST CodeForces - 797D 题意:给定一棵任意的树,对树上所有结点的权值运行给定的算法(二叉查找树的查找算法)(treenode指根结点),问对于多少个权值这个算法会返回false。 方法:如果要求对于值x运行算法能访问到结点k,根据给定算法还有树,可以推出对于每个结点 ...
分类:
其他好文 时间:
2017-09-12 18:37:44
阅读次数:
201
二叉排序树又称二叉查找树,亦称二叉搜索树。 二叉排序树或者是一颗空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根节点的值; (2)若右子树不空,则右子树所有结点的值均大于或等于它的根结点的值; (3)左、右子树也分别为二叉排序树 平衡二叉树: 又称为AVL树 ...
分类:
编程语言 时间:
2017-09-10 15:52:21
阅读次数:
281
循环链表 相比单链表,循环链表将最后一个结点的指针指向了头结点。 循环链表里没有空指针,所以在判断结束条件时不是判断指针是否为空,而是判断指针是否等于某固定指针。 单链表里,一个结点只能访问它后面的结点,但是循环链表里它能访问所有结点。 双向链表 指针域记录了结点的上一个结点(前驱结点)和下一个节点 ...
分类:
其他好文 时间:
2017-09-08 18:04:05
阅读次数:
198
(1)树的基本性质 1.树中的结点数等于所有结点的度数+1。 2.树中结点的最大度数称为树的度。 3.度为m的树中第i层上至多有mi-1个结点。 4.高度为h的m叉树至多有(mh-1)/(m-1)个结点。 5.具有n个结点的m叉树的最小高度math.ceil(logm[n(m-1)+1]) (2)二 ...
分类:
其他好文 时间:
2017-09-04 12:01:51
阅读次数:
225
1、二叉树(binary) 1.二叉树 (binary.cpp/c/pas) 【问题描述】 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分 ...
分类:
其他好文 时间:
2017-09-02 15:28:09
阅读次数:
157
22-1 (以广度优先搜索来对图的边进行分类)深度优先搜索将图中的边分类为树边、后向边、前向边和横向边。广度优先搜索也可以用来进行这种分类。具体来说,广度优先搜索将从源结点可以到达的边划分为同样的4种类型。 a.证明在对无向图进行的广度优先搜索中,下面的性质成立: 1.不存在后向边,也不存在前向边。 ...
分类:
编程语言 时间:
2017-08-24 16:17:56
阅读次数:
297
1.后序遍历,每次递归的时候最后一个节点一定是该层的根节点 2.中序遍历,根节点的左边是左子树,右边是右子树 二叉树的遍历 遍历即将树的所有结点访问且仅访问一次。按照根节点位置的不同分为前序遍历,中序遍历,后序遍历。 前序遍历:根节点->左子树->右子树 中序遍历:左子树->根节点->右子树 后序遍 ...
分类:
其他好文 时间:
2017-08-24 13:30:23
阅读次数:
227
http://acm.bnu.edu.cn/v3/problem_show.php?pid=52733 【题意】 给定一棵树,这棵树每个点都有一个点权,标号从0开始,0是根结点 修改操作: SEED 1 13 把结点1的点权乘上13 查询操作: RAND 1 查询结点1为根的子树所有结点权的总乘积, ...
分类:
编程语言 时间:
2017-08-23 20:46:22
阅读次数:
205
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中; 否则,如果查询关键字比结点 ...
分类:
其他好文 时间:
2017-08-23 10:46:22
阅读次数:
139