本文主要是介绍统计二叉树中给定值 G从根节点到它的路径。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:统计二叉树中给定值 G从根节点到它的路径。
分析: 基调是后序遍历,因为需要输出其祖先。借助后序非递归遍历 。
void Path(BiTree T,ElemType G){InitStack(S);BiTNode *p = T;BiTNode *r = NULL;while(p || !IsEmpty(S)){if(p){push(S,p);p = p->lchild;}else{GetTop(S,p);if(p->data == G){InitStack(S1);while(!IsEmpty(S)){pop(S,p);push(S1,p); //借用临时栈来实现从根到 G 的路径输出}while(!IsEmpty(S1)){pop(S1,p);visit(p);}Destory(S1); //销毁临时栈}if(p->rchild && p->rchild != r)p = p->rchild;else{pop(S,p)r = p;p = NULL;}}}
}
这篇关于统计二叉树中给定值 G从根节点到它的路径。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!