C++构建二叉树

//这里构建的是二叉树不是普通树,它最多只有两个孩子。
#include<iostream>
using namespace std;
struct Binarytreenode
{
int value;
Binarytreenode* left;
Binarytreenode* right;
};
Binarytreenode* creatBinarytree(int value)
{
Binarytreenode*root=new Binarytreenode;
root->value =value;
root->left =NULL;
root->right=NULL;
return root;
}
void connectBinarytreenode(Binarytreenode*parent,Binarytreenode*right,Binarytreenode*left)
{
if(parent!=NULL)
{
parent->left =left;
parent->right =right;
}
}
void printBinarytreenode(Binarytreenode*pnode)
{
if(pnode==NULL)
cout<<"this node is NULL"<<endl;
else
{
cout<<pnode->value<<endl;
if(pnode->left==NULL)
cout<<"left  NULL"<<" ";
else
cout<<"left"<<" "<<pnode->left->value <<" ";
if(pnode->right ==NULL)
cout<<"right  NULL"<<" "<<endl;
else 
cout<<"right"<<" "<<pnode->right ->value <<endl;
}
}
//前序遍历
void printBinarytree(Binarytreenode*root)
{
printBinarytreenode(root);
if(root!=NULL)
{
if(root->left !=NULL)
printBinarytree(root->left);
if(root->right !=NULL)
printBinarytree(root->right );
}
}
void destroyBinarytree(Binarytreenode*root)
{
if(root!=NULL)
{
Binarytreenode*pleft=root->left;
Binarytreenode*pright=root->right ;
delete root;
root=NULL;
destroyBinarytree(pleft);
destroyBinarytree(pright);
}
}
int main()
{
Binarytreenode*p1=creatBinarytree(1);
Binarytreenode*p2=creatBinarytree(2);
Binarytreenode*p3=creatBinarytree(3);
Binarytreenode*p4=creatBinarytree(4);
Binarytreenode*p5=creatBinarytree(5);
Binarytreenode*p6=creatBinarytree(6);
connectBinarytreenode(p4,p3,p5);
connectBinarytreenode(p3,p1,NULL);
connectBinarytreenode(p5,p2,NULL);
printBinarytree(p4);
destroyBinarytree(p4);
return 0;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值