#include<iostream>
#include <string>
using namespace std;
//结构体
typedef struct node
{
char data;
struct node *lchild,*rchild;
}binary_tree,*tree;
//构造一棵树,以字符0作为空
void creat_tree(tree &t)
{
char ch;
cin>>ch;
if(ch == '0')
{
t=NULL;
}
else
{
t = new binary_tree;
if(!t) exit(0); //如果没成功申请空间 则退出
t->data=ch;
creat_tree(t->lchild);
creat_tree(t->rchild);
}
}
//打印路径
bool printPath(tree &t, char data)
{
if (t == NULL)
return false;
if (t->data == data || printPath(t->lchild,data) || printPath(t->rchild,data))
{
cout<<t->data; //路径上的结点标识打印出来
return true;
}
return false;
}
//输出路径长度
void printLeavesDepth(tree &t, size_t depth = 0)
{
if (t == NULL) return;
if (t->lchild == NULL
c++输出二叉树叶子结点并输出叶子结点到根结点的路径长度
最新推荐文章于 2023-07-04 12:38:18 发布
该博客介绍了一种使用C++编程的方法,用于创建二叉树、输出叶子节点以及打印从叶子节点到根节点的路径长度。首先定义了二叉树的结构体,并通过`creat_tree`函数构建树。接着,`printPath`函数用于查找并打印包含特定节点的路径,而`printLeavesDepth`函数则遍历树以输出每个叶子节点及其对应的路径长度。最后,`DispLeaf`函数用于输出所有叶子节点的值。
摘要由CSDN通过智能技术生成