package main
import "fmt"
//节点
type node struct{
key int
left *node
right *node
}
//构造函数
func NewNode(key int) *node{
return &node{key:key}
}
//添加节点
func (root *node) Insert(num int) *node{
if root == nil {
root := NewNode(num)
return root
}
if root.key >= num {
if root.left == nil { //左子树
root.left = NewNode(num)
} else {
root.left.Insert(num)
}
} else {
if root.right == nil { //右子树
root.right = NewNode(num)
} else {
root.right.Insert(num)
}
}
return root
}
//中序遍历二叉树
func inOrderTraverse(root *node){
if root == nil {
return;
}
if root.left != nil {
inOrderTraverse(root.left)
}
fmt.Println(root.key)
if root.right != nil {
inOrderTraverse(root.right)
}
}
func main(){
//测试6个元素的数组
arr := [6]int{5,2,1,7,9,3}
//初始根结点
root := NewNode(0)
for _,val := range arr {
root.Insert(val)
}
inOrderTraverse(root);
}
go算法-二叉树
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 本次课程设计主要含三部分内容,并且每一部分内容独立为一个小的课程设计 1.二叉树的建立及其非递归的先序、中序、后序...
- 本次的课程设计要求建立一颗二叉树,并且用中序非递归方法遍历该二叉树,然后判断该二叉树是否为二叉排序树,如果是二叉排...
- 面试算法代码知识梳理系列 面试算法知识梳理(1) - 排序算法 插入排序 希尔排序 选择排序 冒泡排序 计数排序 ...
- 面试算法代码知识梳理系列 面试算法知识梳理(1) - 排序算法 插入排序 希尔排序 选择排序 冒泡排序 计数排序 ...
- 面试算法代码知识梳理系列 面试算法知识梳理(1) - 排序算法面试算法知识梳理(2) - 字符串算法第一部分面试算...