Day2 基础数据结构之二叉树(未完成)
二叉树是一种基础的非线性数据结构,难点在于二叉树的创建,代码如下(错误的!!!)
void CreatTree(BitTree tree)
{
int num;
cin>>num;
for(int i=1;i<=num;i++){
int x;
cin>>x;
BitNode *root = tree;
BitNode *parent = NULL;
while (root!=NULL)
{
cout<<root->data; //ss
//根节点不为空
//如果值存在
if (root->data == x){
cout<<"&&&"; //ss
break;
}
parent = root; //双亲节点指向根节点。
//根节点的值大于所要插入的值,要插入的值在根节点的左边。
if (root->data > x)
root = root->left;
if (root->data < x)
root = root->right;
}
cout<<"&&&&"; //ss
if (root->data == x){
cout<<'^'; //ss
continue;
}
BitNode *p = new BitNode;
p->data = x;
p->left = p->right = NULL;
if (parent == NULL)
{
cout<<'%'; //ss
tree = p;
}
if (x < parent->data){
parent->left = p;
cout<<'#'; //ss
}
if (x > parent->data)
parent->right = p;
}
}