/*_############################################################################
_##
_## 测试二叉搜索树的实例
_## Author: xwlee
_## Time: 2007.01.01
_## Chang'an University
_## Development condition: win2003 Server+VC6.0
_##
_## temp.cpp 文件
_##########################################################################*/
#include<iostream>
#include <ctime>
#include <iomanip>
#include "stack.h"
using namespace std;
#define TEMP_SIZE 10
void my_callback(TREE_TYPE value);
void treeprint( treenode **p );
int main()
{
treenode **treep;
treep = get_tree_piont();
cout<< "=======================================================" << endl;
srand( (unsigned)time( NULL ) ); // srand()函数产生一个以当前时间开始的随机种子.
insert(20);
insert(12);
insert(25);
insert(5);
insert(16);
insert(28);
insert(9);
insert(17);
insert(26);
insert(29);
/*
insert(4);
insert(2);
insert(1);
insert(3);
insert(6);
insert(5);
insert(7);
*/
cout << endl << "####: " << *find(5) <<endl; // 解引用小心
cout << endl << "####: " << *find(25) <<endl;
cout<< "/n=======================================================" << endl;
pre_order_traverse( my_callback );
cout << endl;
mid_order_traverse( my_callback );
cout << endl;
back_order_traverse( my_callback );
cout << endl;
cout<< "/n=======================================================" << endl;
treeprint( treep );
return 0;
}
void my_callback(TREE_TYPE value)
{
printf("%d ", value);
}
void treeprint( treenode **p )
{
int i=0;
treenode *current = *p;
if( current != NULL)
{
treeprint( ¤t->left);
cout << current->value << endl;;
treeprint( ¤t->right);
}
}
_##
_## 测试二叉搜索树的实例
_## Author: xwlee
_## Time: 2007.01.01
_## Chang'an University
_## Development condition: win2003 Server+VC6.0
_##
_## temp.cpp 文件
_##########################################################################*/
#include<iostream>
#include <ctime>
#include <iomanip>
#include "stack.h"
using namespace std;
#define TEMP_SIZE 10
void my_callback(TREE_TYPE value);
void treeprint( treenode **p );
int main()
{
treenode **treep;
treep = get_tree_piont();
cout<< "=======================================================" << endl;
srand( (unsigned)time( NULL ) ); // srand()函数产生一个以当前时间开始的随机种子.
insert(20);
insert(12);
insert(25);
insert(5);
insert(16);
insert(28);
insert(9);
insert(17);
insert(26);
insert(29);
/*
insert(4);
insert(2);
insert(1);
insert(3);
insert(6);
insert(5);
insert(7);
*/
cout << endl << "####: " << *find(5) <<endl; // 解引用小心
cout << endl << "####: " << *find(25) <<endl;
cout<< "/n=======================================================" << endl;
pre_order_traverse( my_callback );
cout << endl;
mid_order_traverse( my_callback );
cout << endl;
back_order_traverse( my_callback );
cout << endl;
cout<< "/n=======================================================" << endl;
treeprint( treep );
return 0;
}
void my_callback(TREE_TYPE value)
{
printf("%d ", value);
}
void treeprint( treenode **p )
{
int i=0;
treenode *current = *p;
if( current != NULL)
{
treeprint( ¤t->left);
cout << current->value << endl;;
treeprint( ¤t->right);
}
}
本文介绍了一个二叉搜索树的实现实例,通过插入一系列整数构建了一棵二叉搜索树,并演示了前序、中序及后序遍历的方法。

被折叠的 条评论
为什么被折叠?



