2叉树结构
package main
import "fmt"
type TreeNode struct {
Name string
Left *TreeNode
Right *TreeNode
}
func (t *TreeNode) AddLeftNode(value string) *TreeNode {
t.Left = &TreeNode{Name: value}
return t.Left
}
func (t *TreeNode) AddRightNode(value string) *TreeNode {
t.Right = &TreeNode{Name: value}
return t.Right
}
//先序便利
func traversal(node *TreeNode) {
if node == nil {
return
}
fmt.Println("name:",node.Name)
traversal(node.Left)
traversal(node.Right)
}
//中序便利
func middleTraversal(node *TreeNode) {
if node == nil {
return
}
middleTraversal(node.Left)
fmt.Println("name:",node.Name)
middleTraversal(node.Right)
}
//后续便利
func backTraversal(node *TreeNode) {
if node == nil {
return
}
middleTraversal(node.Left)
middleTraversal(node.Right)
fmt.Println("name:",node.Name