C++二叉树的创建,树的深度以及遍历的递归

本文介绍了如何使用C++创建二叉树,包括递归创建和遍历(先序、中序、后序)以及计算二叉树的深度。通过示例代码展示了二叉树节点的定义、树的构造方法以及遍历和深度计算的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include
#include
using namespace std;
//二叉树的struct定义
typedef struct node {
struct node* lchild;
struct node* rchild;
char data;
}BitreeNode,*Bitree;
//创建二叉树
void CreateBitree(Bitree& T) {
char c;
cin >> c;
if (’#’ == c) {
T == NULL;
}
else {
T = new BitreeNode;
T->data = c;
CreateBitree(T->lchild);
CreateBitree(T->rchild);
}
}
//树的先序遍历
void Preodertraverse(Bitree T) {
if (T) {
cout << T->data;
Preodertraverse(T->lchild);
Preodertraverse(T->rchild);
}
}
//树的中序遍历
void Inodertraverse(Bitree T) {
if (T) {
Inodertraverse(T->lchild);
cout << T->data;
Inodertraverse(T->rchild);
}
}
//树的后序遍历
void Postodertraverse(Bitree T) {
if (T) {
Postodertraverse(T->lchild);
Postodertraverse(T->rchild);
cout << T->data;
}
}
//求树的深度
int Depth(Bitree T) {
int m, n;
if (T == NULL) {
return 0;
}
else {
m = Depth(T->lchild);
n = Depth(T->rchild);
if (m > n) { return (m + 1); }
else { return (n + 1); }
}
}
//计算结点个数
int Nodecount(Bitree T) {
if (T == NULL) { return 0; }
else { return Nodecount(T->lchild) + Nodecount(T->rchild) + 1; }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值