从二叉树的定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定结点上,可以按某种次序执行节点本身的访问,左子树节点的访问和右子树节点的访问。下面的示例代码实现了二叉树的构建、二叉树的遍历(包含递归和非递归方式的实现)、二叉树的索引等。具体解释在代码中都有注释。代码如下:
结果如下:
前序遍历结果:
10,7,5,3,1,6,8,9,16,12,19,
10,7,5,3,1,6,8,9,16,12,19,
10,7,5,3,1,6,8,9,16,12,19,
中序遍历结果:
1,3,5,6,7,8,9,10,12,16,19,
1,3,5,6,7,8,9,10,12,16,19,
后序遍历结果:
1,3,6,5,9,8,7,12,19,16,10,
1,3,6,5,9,8,7,12,19,16,10,
1,3,6,5,9,8,7,12,19,16,10,
在二叉树中查找节点是否存在:
查找节点【7】是否存在:true
查找节点【9】是否存在:true
查找节点【27】是否存在:false