go语言数据结构二叉树的实现

  二叉树是每个节点最多有两个分支的数据结构,树的根节点是树结构的第一个节点,树的深度也叫树的高度:是从树的根节点到所有节点的路径中最长的一个.而节点的深度是该节点到树的根所经过的路径中边的数量

  package main

  import (

  "fmt"

  "math/rand"

  "time"

  )

  //定义节点结构体

  type Tree struct{

  Left *Tree

  Value int

  Right *Tree

  }

  //打印二叉树

  func printTree(t *Tree) {

  if t==nil{

  return

  }

  //这里使用前序遍历打印数据,这里有不懂的,可以搜索一下,前序,中序,后序遍历

  printTree(t.Left)

  fmt.Println(t.Value," ")

  printTree(t.Right)

  }

  //创建节点

  func create(n int ) *Tree {

  var t *Tree

  rand.Seed(time.Now().Unix())

  for i :=0; i < 2*n; i++ {

  temp :=rand.Intn(n*2)

  t=insert(t,temp)

  }

  return t

  }

  //向节点里添加数据

  func insert(t *Tree ,v int) *Tree {

  if t==nil{

  return &Tree{

  Left: nil,

  Value: v,

  Right: nil,

  }

  }

  if t.Value==v{

  return t

  }

  if v

  t.Left=insert(t.Left,v)

  return t

  }

  t.Right=insert(t.Right,v)

  return t

  }

  func main() {

  tree :=create(3)

  fmt.Println("树结节数据",tree.Value)

  printTree(tree)

  //fmt.Println()

  tree=insert(tree,-10)

  tree=insert(tree,-2)

  printTree(tree)

  //fmt.Println()

  //fmt.Println("添加后的数据节点值",tree.Value)

  }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值