#include <iostream>
#include <string>
using namespace std;
//二叉结点
class treenode
{
public:
treenode(int value)
{
left=NULL;
right=NULL;
data=value;
}
int data;
treenode* left;
treenode* right;
};
//插入结点
void insert(treenode* root,int value)
{
if(root)
{
//没有左结点,且关键字比结点值小
if(root->left==NULL && root->data>value)
{
treenode* p=new treenode(value);
root->left=p;
}
if(root->right==NULL && root->data<value)
{
treenode* p=new treenode(value);
root->right=p;
}
//可以继续往下找
else
{
if(root->data<value)
{
insert(root->right,value);
}
else
{
insert(root->left,value);
}
}
}
}
//先序遍历
void preorder(treenode* root)
{
if(root)
{
cout<<root->data<<" ";
preorder(root->left);
preorder(root->right);
}
}
int main()
{
treenode* root=new treenode(50);
insert(root,40);
insert(root,60);
insert(root,41);
preorder(root);
return 0;
}
C++二叉树的构造和插入
最新推荐文章于 2024-07-25 08:38:10 发布