golang 二叉树的遍历

二叉树的遍历

package main

import "fmt"

//二叉树的遍历
//二叉树的遍历分为三种情况,前序遍历、中序遍历、后去遍历

//定义二叉树
type Node struct {
	Id int
	Name string
	Left *Node
	Right *Node
}

//前序遍历
func (this *Node)PreOrder(node *Node)  {
	if node != nil{
		fmt.Println(node.Name)
		this.PreOrder(node.Left)
		this.PreOrder(node.Right)
	}
}

//中序遍历
func (this *Node)FixOrder(node *Node)  {
	if node != nil{
		this.FixOrder(node.Left)
		fmt.Println(node.Name)
		this.FixOrder(node.Right)
	}
}

//后序遍历
func (this *Node)NextOrder(node *Node)  {
	if node != nil{
		this.NextOrder(node.Left)
		this.NextOrder(node.Right)
		fmt.Println(node.Name)
	}
}

func main() {
	node1 := &Node{
		Id: 1,
		Name: "node1",
	}

	node2 := &Node{
		Id: 2,
		Name: "node2",
	}

	node3 := &Node{
		Id: 3,
		Name: "node3",
	}

	node4 := &Node{
		Id: 4,
		Name: "node4",
	}

	node5 := &Node{
		Id: 5,
		Name: "node5",
	}

	node6 := &Node{
		Id: 6,
		Name: "node6",
	}

	node7 := &Node{
		Id: 7,
		Name: "node7",
	}

	node1.Left = node2
	node1.Right = node3
	node2.Left = node4
	node2.Right = node5
	node3.Left = node6
	node3.Right = node7

	//前序便利
	//node1.PreOrder(node1)
	//中序便利
	//node1.FixOrder(node1)
	//后序便利
	node1.NextOrder(node1)
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值