需求:
使用java构建完全二叉树,实现先序遍历、中序遍历、后序遍历。
分析:
1、分析二叉树类的属性和功能,即成员变量和成员函数
成员变量:
存储所有节点值的数组和存储所有节点的集合。
二叉树的节点都有值,可以将所有的值存到数组中,并且要以节点形式存在,存到集合中。
成员函数:
创建二叉树(类似于File类,创建File对象功能定义在内部);获取根节点函数;先序遍历;中序遍历;后序遍历
内部类:
节点类TreeNode
二叉树本身是由很多节点构成的,每个节点有值和儿子节点,构造Node类作为二叉树类的内部类,方便处理。这就是说,如果类A中包含类B,就可以直接将B定义在A中,方便使用。
构造函数:
传入二叉树各节点值组成的数组。
2、父子节点关系
除了最后一个父节点,每个父节点都有两个儿子,最后一个父节点有左儿子,但是不一定有右儿子,当节点个数是奇数时,才有右儿子。
3、完全二叉树
若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续