题目: 不同二叉树的叶节点上可以保存相同的值序列。例如,以下两个二叉树都保存了序列 1,1,2,3,5,8,13。 在大多数语言中,检查两个二叉树是否保存了相同序列的函数都相当复杂。 我们将使用 Go 的并发和信道来编写一个简单的解法。 本例使用了tree包,它定义了类型:
题目地址https://tour.go-zh.org/concur... 前提:对两棵二叉树进行中序遍历,若是得到的数值序列相同,则将其视为等价二叉树。 要求:使用goroutine协程 思想:其实和不使用协程的思路差不多,分别中序遍历两棵树,得到数值序列,比较两个序列是否相等。 若是使用协程,则可以很方便地并发遍历两棵树,再利用信道传输...
等价二叉查找树 实现Walk 函数。 测试Walk 函数。 函数tree.New(k) 用于构造一个随机结构的已排序二叉查找树,它保存了值 k, 2k, 3k, ..., 10k。 创建一个新的信道 ch 并且对其进行步进: goWalk(tree.New(1), ch) 然后从信道中读取并打印 10 个值。应当是数字 1, 2, 3, ..., 10。