二叉树建立的输入问题,对于空闲叶子节点,需要用特殊字符标记。二叉排序树建立的输入问题与之相反,只需要将要输入的数据一股脑的输入即可,不需要对特殊字符进行判别,需要对新输入的数据大小进行判别,却也造成了返回值的问题。解决代码如下,亲测有效。
#include<iostream>
using namespace std;
struct node
{
int data;
node *left;
node *right;
node(){left=NULL;right=NULL;};
};
node *insert(node *root,int a)
{
if(root==NULL)
{
root=new node;
root->data=a;
return root;
}
else if(a<root->data)
root->left=insert(root->left,a);
else if(a>root->data)
root->right=insert(root->right,a);
return root;
}
void preorder(node *root)
{
if(root)
{
cout<<root->data<<" ";
preorder(root->left);
preorder(root->right);
}
}
void inorder(node *root)
{
if(root)
{
inorder(root->left);
cout<<root->data<<" ";
ino