如图:
代码:
#include
#include
#include
#include
using namespace std;
char ch;
typedef struct BinNode
{
char data;
struct BinNode *lchild,*rchild;
}BinNode,*BinTree; //二叉树链式...
分类:
其他好文 时间:
2014-06-05 09:15:24
阅读次数:
203
直接上代码:
/*
二叉树的链表实现:
以及三种遍历方式:
author:天下无双
Date:2014-5-28
Version:2.0
*/
#include
#include
typedef int T;//树内节点的数据类型
using namespace std;
class BiTree
{
private:
struct BiNode{
T data;
BiN...
分类:
其他好文 时间:
2014-06-05 06:30:49
阅读次数:
273
注意:
1 判断一个节点是否平衡的方法
2 平衡一个节点的方法 :
我这里比原文改进一点,独立出一个平衡节点的函数balanceNode(),这样一个函数可以用来平衡插入和删除操作,使得代码更加简洁了。
这样修改之后就使得平衡二叉树好像和一般二叉树的操作比较,就是多了一个平衡操作。
3 删除操作情况很多,很困难,一定要理清思路。十分容易出bug的地方。
这里是查找后继节点的值,填补上到...
分类:
其他好文 时间:
2014-06-05 05:16:45
阅读次数:
261
AVL可以保证搜索达到O(lgn)的时间效率,因为两边的树高都差不多。不会出现搜索是线性的最坏情况。
但是AVL在插入和删除节点的时候需要做较多的旋转操作,所以如果修改节点多的时候,最好使用红黑树,但是如果搜索多的时候,就最好使用AVL了。...
分类:
其他好文 时间:
2014-06-05 02:08:26
阅读次数:
310
本题应该挺经典的,因为可以使用好多方法过,适合训练多种高级数据结构和算法。
这里使用AVL平衡二叉树的解法,时间还可以,大概300ms吧,内存很省188k,因为这里使用指针,没有浪费内存。
这里使用Geeks上面的AVL的做法,使用递归更新树,而不使用双亲指针,试了下使用双亲指针,真的好麻烦,要维护多一个指针,容易出错很多。
递归操作二叉树是非常优雅的。
而且不需要使用任何STL容器,非常...
分类:
其他好文 时间:
2014-06-05 01:56:58
阅读次数:
269
(转载请注明出处:http://blog.csdn.net/buptgshengod)1.背景
接着上一节说,没看到请先看一下上一节关于数据集的划分数据集划分。如今我们得到了每一个特征值得信息熵增益,我们依照信息熵增益的从大到校的顺序,安排排列为二叉树的节点。数据集和二叉树的图见下。(二叉树的图是....
分类:
编程语言 时间:
2014-06-03 07:23:48
阅读次数:
325
链接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2040
Description:
给出一棵二叉树的中序和前序遍历,输出它的后序遍历。
Input
本题有多组数据,输入处理到文件结束。
每组数据的第一行包括一个整数n,表示这棵二叉树一共有n个节点。
接下来的一行每行包括n个整数,表示...
分类:
其他好文 时间:
2014-06-03 03:10:46
阅读次数:
236
J - Tree
Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld
& %llu
Submit Status
Appoint description:
System Crawler (2014-05-16)
Description
Tree
...
分类:
其他好文 时间:
2014-06-03 03:06:52
阅读次数:
359
根据二叉树的先序序列和中序序列还原二叉树并打印后序序列...
分类:
其他好文 时间:
2014-06-03 00:43:00
阅读次数:
249