/* PostOrderTraverse()调用 */
void PostTraverse(SqBiTree T,int e)
{ 
	if(T[2*e+1]!=Nil) /* 左子树不空 */
		PostTraverse(T,2*e+1);
	if(T[2*e+2]!=Nil) /* 右子树不空 */
		PostTraverse(T,2*e+2);
	visit(T[e]);
}
示例#2
0
 void PostTraverse(SqBiTree T,int e)
 { // PostOrderTraverse()调用
   if(T[2*e+1]!=Nil) // 左子树不空
     PostTraverse(T,2*e+1);
   if(T[2*e+2]!=Nil) // 右子树不空
     PostTraverse(T,2*e+2);
   VisitFunc(T[e]);
 }
示例#3
0
void PostTraverse(BiTree T)
{
	if(NULL!=T)
	{
		PostTraverse(T->lchild);
		PostTraverse(T->rchild);
		printf("%d ",T->data);
	}
}
/* 操作结果: 后序遍历T。 */
Status PostOrderTraverse(SqBiTree T)
{ 
	if(!BiTreeEmpty(T)) /* 树不空 */
		PostTraverse(T,0);
	printf("\n");
	return OK;
}
示例#5
0
 void PostOrderTraverse(SqBiTree T,void(*Visit)(TElemType))
 { // 初始条件:二叉树T存在,Visit是对结点操作的应用函数
   // 操作结果:后序遍历T,对每个结点调用函数Visit一次且仅一次
   VisitFunc=Visit;
   if(!BiTreeEmpty(T)) // 树不空
     PostTraverse(T,0);
   cout<<endl;
 }