我正在使用 OCaml。我有类型:
type 'a bt = Empty | Node of 'a * 'a bt * 'a bt;;
我也有示例 BST:
let tree = Node(1,Node(2,Node(4,Empty,Empty),Empty),Node(3,Node(5,Empty,Node(6,Empty,Empty)),Empty));
我需要编写函数:breadthBT : 'a bt -> 'a list
这将是广度优先搜索遍历。对于上面的示例树,它应该返回[1; 2; 3; 4; 5; 6]
这个函数怎么写?我只能编写以下使用DST的函数:
let rec breadthBT tree =
if tree=Empty then []
else let Node(w,l,r)=tree in (w::breadthBT l)@breadthBT r;;
上面的函数返回(例如树)[1; 2;4;3;5个;6]。但我不能编写使用BFS的函数。你可以帮帮我吗?