被要求动态建立二叉树,并切有序,然后中序输出,先把代码贴出来,再给予讲解。
// ConsoleApplication11.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
//#include "pch.h"
#include <iostream>
using namespace std;
class bitNode
{
public:
int key;
bitNode *lchild, *rchild;
bitNode(){}
bitNode(int data,bitNode *lchild=NULL,bitNode *rchild=NULL)
{
key = data;
}
};
class biTree
{
public:
bitNode *root;
biTree()
{
root = NULL;
}
bool search(int data)
{
bitNode *x = root;
if (x== NULL)
{
return false;
}
while (x != NULL)
{
if (x->key == data)
return true;
else if (x->key > data)
x = x->lchild;
else
x = x->rchild;
}
return false;
}
void insert(int data)
{
if (search(data)==false)
{