AVL树测试程序
来源:互联网 发布:php 文章置顶 编辑:程序博客网 时间:2024/06/12 20:40
AVL树(三)
下面用一个例子来测试AVL树的平衡性
随机的反复插入和删除树中的节点,如代码所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include "AVL.h"
#include "IntClass.h"
#include <time.h>
#include <stdlib.h>
#include "StringClass.h"
using
namespace
std;
int
main()
{
BSTree bstree;
BSTree bstreeStr;
int
max=50;
srand
(unsigned(
time
(0)));
for
(
int
j=0;j<50;j++)
{
int
number=
rand
()%7;
for
(
int
i=number;i>0;i--)
{
int
a=
rand
()%max;
bstree.insert(
new
IntClass(a),
new
StringClass(
"Tao"
,3));
}
for
(
int
i=number;i>0;i--)
{
int
a=
rand
()%max;
bstree.
remove
(
new
IntClass(a));
}
}
bstree.outPut();
cout<<
"------------------------------------------------"
<<endl;
bstreeStr.insert(
new
StringClass(
"Jim"
,3),
new
StringClass(
"Hello, I'm a student"
,20));
bstreeStr.insert(
new
StringClass(
"Lucy"
,4),
new
StringClass(
"Hello, I'm a teacher"
,20));
bstreeStr.insert(
new
StringClass(
"Brown"
,5),
new
StringClass(
"Hello, I'm a doctor"
,19));
bstreeStr.insert(
new
StringClass(
"Lily"
,4),
new
StringClass(
"Hello, I'm a actor"
,18));
bstreeStr.insert(
new
StringClass(
"Tao"
,3),
new
StringClass(
"Hello, I'm a student"
,20));
bstreeStr.insert(
new
StringClass(
"Peter"
,5),
new
StringClass(
"Hello, I'm a teacher"
,20));
bstreeStr.insert(
new
StringClass(
"John"
,4),
new
StringClass(
"Hello, I'm a doctor"
,19));
bstreeStr.insert(
new
StringClass(
"Tony"
,4),
new
StringClass(
"Hello, I'm a actor"
,18));
bstreeStr.insert(
new
StringClass(
"Linda"
,5),
new
StringClass(
"Hello, I'm a student"
,20));
bstreeStr.insert(
new
StringClass(
"Jurcy"
,5),
new
StringClass(
"Hello, I'm a teacher"
,20));
bstreeStr.insert(
new
StringClass(
"Chern"
,5),
new
StringClass(
"Hello, I'm a doctor"
,19));
bstreeStr.outPut();
cout<<
"-------------------------------------------------"
<<endl;
return
0;
}
结果如下图,可见AVL树的平衡性很好,几乎达到完全二叉树的效果
本文出自:http://www.cnblogs.com/xiao-cheng/archive/2011/10/04/2199092.html
- AVL树测试程序
- AVL平衡二叉树打印树模型测试
- 我的AVL树代码实现(欢迎测试)
- AVL树
- AVL树
- AVL树
- avl树
- AVL树
- avl树
- AVL树
- AVL树
- AVL树
- AVL树
- avl树
- avl树
- AVL树
- AVL树
- AVL树
- 位运算简介及实用技巧
- 电阻基础知识
- AVL树实现代码
- 归并排序
- matlab 柱状图 填充图案
- AVL树测试程序
- 一个android不理解的问题
- vxworks phy调试续
- ip地址与网络上的其他系统有冲突怎么解决
- 自定义Activity标题栏(Title bar)和窗体显示状态操作(requestWindowFeature()的应用)
- windows下codeblocks+wxWidgets+MinGW+wxFormBuilder开发win32 GUI环境的搭建
- Java内存泄露的理解与解决(转)
- javascript解析xml
- Starting MySQL. ERROR! Manager of pid-file quit without updating file.