1、多种遍历
代码:
//多种遍历3
#include<cstdlib>//动态分配内存
#include<iostream>
#include<stdlib.h>
#include<algorithm>
using namespace std;
//建立节点
struct NODE
{
int value;
NODE*left;
NODE*right;
NODE(int v,NODE *l,NODE *r):value(v),left(NULL),right(NULL)
{
left=l;
right=r;
}
} ;
//生成随机函数
int randint(int lower,int upper)
{
return rand()%(upper-lower+1)+lower;
}
//rand函数 生成随机树
NODE*generateRandomBST(int lower,int upper)
{
NODE*t=nullptr;
int randomValue;
if(lower<=upper)
{
randomValue=randint(lower,upper);
t=new NODE(randomValue,generateRandomBST(lower,randomValue-1),generateRandomBST(randomValue+1,upper));
}
return t;
}
//1为下限,n为上限
NODE *generateRandomBST(int n)
{
return generateRandomBST(1, n);
}
//前序遍历
void preOrder(NODE*root)
{
if(root!=NULL)
{
cout<<root->value<<" ";
preOrder(root->left);
preOrder(root->right