摘要: 递归:void exchange(BTree *rt){ BTree *temp = NULL; if(rt->lchild == NULL && rt->rchild == NULL) return; else{ temp = rt->lchild; rt->lchild = rt->rchild; rt->rchild = temp; } if(rt->lchild) exchange(rt->lchild); if(rt->rchild) exchange(rt->rchild);}非递归:Stack是一个定义好 阅读全文
posted @ 2011-04-21 22:30 Together, 阅读(5167) 评论(0) 推荐(0) 编辑
摘要: /*对任意一颗二叉树,是将其说有结点的左右子树交换,并将交换前后不同二叉树分别用层序、前序,中序三种不同的方法进行遍历。算法描述:分四步(1) 创建二叉树用递归的方法创建树根结点,然后分别创建左右子树。在创建二叉树时结点可以提前确定,也可以不确定,有数据输入控制。此方法中树的节点有输入端输入,然后再输入一个字符串,然后从字符串中读入数据创建二叉树。(2)用三种不同的方法遍历交换前的二叉树。层次遍历,先根遍历,中跟遍历。层次遍历用一个指针栈来实现。另外两种方法用递归即可。(3)交换二叉树中所有的结点的左右子树。交换过程中需要用一个指针站来实现。(4)遍历二叉树。实现过程跟第二步差不多。*/#in 阅读全文
posted @ 2011-04-21 22:10 Together, 阅读(9548) 评论(0) 推荐(2) 编辑