Go学习之实现等价二叉查找树
Posted martinue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go学习之实现等价二叉查找树相关的知识,希望对你有一定的参考价值。
地址:https://tour.go-zh.org/concurrency/7
code:
package main
import (
"golang.org/x/tour/tree"
"fmt"
//"strconv"
)
// Walk 步进 tree t 将所有的值从 tree 发送到 channel ch。
func Walk(t *tree.Tree, ch chan int)
if t == nil
return
if t.Left != nil
Walk(t.Left, ch)
//fmt.Println(t.Value)
ch <- t.Value
if t.Right != nil
Walk(t.Right, ch)
return
// Same 检测树 t1 和 t2 是否含有相同的值。
func Same(t1, t2 *tree.Tree) bool
ch0 := make(chan int, 15)
ch1 := make(chan int, 15)
Walk(t1, ch0)
close(ch0)
Walk(t2, ch1)
close(ch1)
l0 := len(ch0)
l1 := len(ch1)
if l0 != l1
return false;
for i := 0; i < l0; i++
if <-ch0 != <-ch1
return false
//fmt.Println("ch0:" + strconv.Itoa(<-ch0))
//for i := 0; i < l1; i++
// fmt.Println("ch1:" + strconv.Itoa(<-ch1))
//
return true
func main()
tree0 := tree.New(2)
tree1 := tree.New(2)
ret := Same(tree0, tree1)
fmt.Println(ret)
以上是关于Go学习之实现等价二叉查找树的主要内容,如果未能解决你的问题,请参考以下文章