go 递归tree关系_(7)Go实现二分搜索树-前中后序递归

上图是一种树数据结构,由n>=1个节点组成的有层次的关系集合,每个节点有0或多个子节点,没有父节点的节点称为跟节点root,有父节点但没有子节点的节点称为叶子节点。

为什么要有树数据结构,因为树是一种天然的组织结构,具有高效的性质,在很多场景,数据采用树结构存储后,会更高效

下面是树结构的一种实现类型:二分搜索树

(1)二分搜索数存储的数值要有可比性

(2)二分搜索树左子树的值都小于父节点,右子树的值都大于父节点

二分搜索树的定义和方法:该实现方法不存在重复元素

type node struct {

value *int

Left *node

Right *node

}

func NewNode() *node {

return &node{}

}

// 向搜索树中插入val:非递归算法

func (tree *node) Add1(val int) {

if tree.value == nil {

*tree = node{&val, new(node), new(node)}

return

}

for {

switch {

case *tree.value == val:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值