数据结构作业,要求:1.计算二叉树叶子节点的个数 2.交换二叉树所有孩子节点的左…详见问题补充

1.计算二叉树叶子节点的个数。2.交换二叉树所有孩子节点的左、右孩子节点。3.根据二叉树的前序遍历和中序遍历的结果,构造二叉树。求大神解答,最好能把思考过程也给出来,谢谢~
匿名用户    2015-04-28 10:40    

满意回答

判断是否是叶子结点。如果一个结点既没有串某左子树,也没有右子树,那么此结点就是叶子结点,反之,如存在一个左子树,或一个右子树,那么就是非叶子结点。这是判断的逻辑。然后只需要对树进行遍历即可,就是3问题提到的树的遍历,树的遍历分为前中后三种遍历。逻辑是很好掌握的主要使用递归的方式实现, 这个网上有很多。你可以自己看下,不懂可以继续问我。不难。还是要遍历整个树分为以下情况进行遍历。若一个结点即存在左子树,又存在右子树,那么让左子树的指针指向右子树;右菠昌寸子树的指针指向左子树。可能需要一个temp指针,做交换的载体temp=Lchlid;Lchild=Rchild;Rchild=temp;即完成了交换。首先掌握前序遍历和中序遍历的思想方法,根据这个判断出树是很好办,首先你可以根据前序建立一个树,然后当遇到不确定此结点是左子树还是右子树的告哑时候使用中序的顺序进行确定。循环此算法即可得到该树。树的数据结构是递推的,所以解决此类问题,要有递归思想,你对递归理解的越透彻,解决树的问题就越轻松。

匿名用户   2015-04-29 09:13
宝宝知道提示您:回答为网友贡献,仅供参考。