2023-04-11 03:50PM
用数组来存储二叉树如何遍历的呢?
如果父节点的数组下表是i,那么它的左孩子就是i * 2 + 1,右孩子就是 i * 2 + 2。
二叉树的遍历方式:
二叉树有三种基本遍历方式,分别是前序遍历、中序遍历和后序遍历。遍历的原理是从根节点开始,按照特定方式递归遍历左子树和右子树,每次对访问到的节点进行操作。
这里前中后,其实指的就是中间节点的遍历顺序,只要记住 前中后序指的就是中间节点的位置就可以了
看如下中间节点的顺序,就可以发现,中间节点的顺序就是所谓的遍历方式
前序遍历
对每颗子树,均遵循根节点–>左节点–>右节点
func preShowTree(head *Node) {
if head == nil {
return
}
fmt.Println(head.V)//第一次来到节点的时候打印
showTree(head.Left)
showTree(head.Right)
}
中序遍历
中序:对每颗子树,均遵循左节点–>根节点–>右节点
func midShowTree(head *Node) {
if head == nil {
return
}
showTree(head.Left)
fmt.Println(head.V)//第二次来到节点的时候打印
showTree(head.Right)
}
后序遍历
后序:对每颗子树,均遵循左节点–>右节点–>根节点
func afterShowTree(head *Node) {
if head == nil {
return
}
showTree(head.Left)
showTree(head.Right)
fmt.Println(head.V)//第三次来到节点的时候打印
}
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论