把二叉树中每个节点左右孩子位置交换。

 考研结束了,我考得很不理想。整理一下准备考研时的算法!不敢保证100%对!

t为一棵二叉树的根节点地址指针,试设计一个非第归的算法完成把二叉树中每个节点左右孩子位置交换。

Stadus BiTreeExchange(BiTree &T)

{//相当于非第归中序遍历树,只是将visit变为交换

  InitStack(s);

  P=T;

  while(p||!StackEmpty(s)){

   if(p){

push(s,p);p->Lchild;

else

{

pop(s,p);

t=p->Rchild;

p->Rchild=p->Lchild;

p->Lchild=t;

p-=->Lchild;//虽然还指向左子树但已经是原来的右子树了
         }//else

}//while

return ok;

}// BiTreeExchange

posted @ 2006-01-18 20:54  火火  阅读(2065)  评论(0编辑  收藏  举报