#include<iostream>
using namespace std;
char path[200];
typedef struct BiTNode
{
char data;
struct BiTNode* lchild, * rchild;
}BiTNode, * BiTree;
void Creatbitree(BiTree& T, char s[], int& i)
{
if (s[i] == '0')
T = NULL;
else
{
T = new BiTNode;
T->data = s[i];
Creatbitree(T->lchild, s, ++i);
Creatbitree(T->rchild, s, ++i);
}
}
void Traverse(BiTree T, int n)
{
if (T)
{
path[n] = T->data;
if (!T->lchild && !T->rchild)
{
for (int i = n; i >= 1; i--)
{
cout << path[i];
cout << endl;
}
}
Traverse(T->lchild, n + 1);
Traverse(T->rchild, n + 1);
}
}
int main()
{
BiTree T;
char s[200];
while (cin >> s && s[0] != '0')
{
int i = -1;
Creatbitree(T, s, ++i);
int n = 0;
Traverse(T, n + 1);
}
return 0;
}
二叉树叶子节点到根的路径输出(c++)
于 2022-03-23 11:57:33 首次发布