题目:已知一棵二叉树链式存储,设计一个算法,输出根结点到每个叶子结点的路径。
算法思想:遍历(先序遍历)
对特殊的结点(叶子结点)进行处理
完整代码:需要借助一个栈
Elemtype stack[maxsize];
void path(BTNode *p){
int i = 0,top = 0;
if (p != NULL) //不为空,则结点值入栈
{
stack[top] = p -> data;
++ top;
}
if (p -> lchild == NULL && p -> rchild == NULL) //如果是叶子结点
{
for (i = 0; i < top; ++i) //读出栈中元素
{
printf(%c,stack[i]);
}
path(p -> lchild); //遍历二叉树
path(p -> rchild);
-- top;
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)