Go Exercise: Equivalent Binary Trees
来源:互联网 发布:网络基础建设 编辑:程序博客网 时间:2024/06/07 17:53
package mainimport ( "fmt" "tour/tree")// Walk walks the tree t sending all values// from the tree to the channel ch.func Walk(t *tree.Tree, ch chan int) { if t.Left != nil { Walk(t.Left, ch) } ch<-t.Value if t.Right != nil { Walk(t.Right, ch) }}// Same determines whether the trees// t1 and t2 contain the same values.func Same(t1, t2 *tree.Tree) bool { ch1:=make(chan int) ch2:=make(chan int) go Walk(t1, ch1) go Walk(t2, ch2) for i:=0; i<10; i++ { if <-ch1 != <-ch2 { return false } } return true} func main() { ch := make(chan int) go Walk(tree.New(1), ch) for i:=0; i<10; i++ { fmt.Println(<-ch) } fmt.Println("Equivalent Binary Trees?", Same(tree.New(1), tree.New(1))) fmt.Println("Equivalent Binary Trees?", Same(tree.New(1), tree.New(2)))}
1. Implement the Walk
function.
2. Test the Walk
function.
The function tree.New(k)
constructs a randomly-structured binary tree holding the values k
, 2k
, 3k
, ..., 10k
.
Create a new channel ch
and kick off the walker:
go Walk(tree.New(1), ch)
Then read and print 10 values from the channel. It should be the numbers 1, 2, 3, ..., 10.
3. Implement the Same
function using Walk
to determine whether t1
andt2
store the same values.
4. Test the Same
function.
Same(tree.New(1), tree.New(1))
should return true, andSame(tree.New(1), tree.New(2))
should return false.
0 0
- Go Exercise: Equivalent Binary Trees
- go语言Exercise: Equivalent Binary Trees
- 【GoLang笔记】A Tour of Go - Exercise: Equivalent Binary Trees
- Go语言实现二叉查找树(Binary Search Trees)
- 【Leetcode】:96. Unique Binary Search Trees 问题 in Go语言
- go语言Exercise: Maps
- go语言Exercise: Slices
- go语言Exercise: Errors
- go语言Exercise: Images
- go语言Exercise: Fibonacci closure
- go语言Exercise: Rot13 Reader
- C++ Binary Tree coding exercise
- Binary Indexed Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Unique Binary Search Trees
- Binary Indexed Trees
- Oracle trunc()函数的用法
- Photoshop的智能对象
- IIS error 503
- IOS启动动画(广告)
- Python optionParser模块的使用方法
- Go Exercise: Equivalent Binary Trees
- 二进制与三进制在it笔试面试中的妙用
- 用jQuery合并表格中左侧表头同列相同文本的相邻单元格
- 开启thinkphp的调试功能
- Hadoop 2.2.0 单节点安装
- ThinkPHP“非法操作”的处理方法
- vim 剪贴板
- CListCtrl控件主要事件及LVN_ITEMCHANGED消息和鼠标双击列表项事件的处理
- OFBIZ分享:产品分类之BEST SELLING (最好销售的分类)