遍历定义——指按某条搜索路线遍访每个结点且不重复(又称周游)。
遍历用途——它是树结构插入、删除、修改、查找和排序运算的前提,是二叉树一切运算的基础和核心。
遍历实质——将非线性结构线性化。
先序遍历
若二叉树为空,则空操作;
否则:(1)访问根结点 (D)(2)先序遍历左子树 (L)(3)先序遍历右子树 ®
public void DLR(BiNode p){
if(p!=null){
System.out.print(p.data);
DLR(p.lchild);
DLR(p.rchild);
}
}
中序遍历
若二叉树为空,则空操作;
否则:(1)中序遍历左子树 (L)(2)访问根结点 (D)(3)中序遍历右子树
public void LDR(BiNode p){
if(p !=null){
LDR(p.lchild);
System.out.print(p.data);
LDR(p.rchild);
}
}
后序遍历
若二叉树为空,则空操作;
否则:(1)后序遍历左子树 (L)(2)后序遍历右子树 ®(3)访问根结点 (D)
public void LRD (BiNode p){
if(p !=null){
LRD (p.lchild);
LRD (p.rchild);
System.out.print(p.data);
}
}