C语言 求二叉树根节点到叶子节点的路径

来源:百度知道 编辑:UC知道 时间:2024/06/23 02:05:38
要求输出二叉树的叶子节点和叶子节点到根节点的路径

它的算法思想应该是
1,以一指针指向该叶子结点并向上(父结点)找,把父节点入栈(方便输出路径)
2,把指针指向父节点,重复上面的过程,直到节点的父节点为空
3,依次出栈输出信息,路径就出来了
(注:此二叉树的节点应包括父指针,左右指针,数据域)

就这么多吧! 要学习程序,就得自己尝试写,写多了就会了

还有什么不懂的可以给我留言 !!

typedef char KeyType;
typedef struct Node{
KeyType key;
struct Node *lchild, *rchild;
}BTNode, *BTree;
char Paths[20];
void OutPutPath( )
{
printf("%s\n", Paths);
}
void LeavesPath(BTree tree, int level)
{
if(tree == NULL) return;
Paths[level] = tree->key;
if((tree->lchild == NULL) && (tree->rchild == NULL))
{
Paths[level + 1] = '\0';
OutPutPath( );
return;
}
LeavesPath(tree->lchild, level + 1);
LeavesPath(tree->rchild, level + 1);
}