二叉树的创建与遍历
简介
代码
二叉树存储结构
typedef struct node
{
char data;//数据域
struct node* lchild;//左孩子指针域
struct node* rchild;//右孩子指针域
}BTNode;
创建二叉树
BTNode* creatbintree()//前序创建二叉树
{
BTNode* p;
char c;
cin >> c;
if (c == '0') p = NULL;//0表示空节点
else
{
p = new BTNode;
p->data = c;
p->lchild = creatbintree();
p->rchild = creatbintree();
}
return p;
}
遍历二叉树
1.先序遍历
void PreOrder(BTNode* p)//先序遍历
{
if (p)
{
cout << p->data << " ";
PreOrder(p->lchild);
PreOrder(p->rchild);
}
}
2.中序遍历
void InOrder(BTNode* p)//中序遍历
{
if (p)
{
InOrder(p->lchild);
cout << p->data << " ";
InOrder(p->rchild);
}
}
3.后序遍历
void PostOrder(BTNode* p)//后序遍历
{
if (p)
{
PostOrder(p->lchild);
PostOrder(p->rchild);
cout << p->data << " ";
}
}
运行结果
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
更多精彩