我正在使用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的功能。你可以幫幫我嗎?
我同意上一次ocaml問題的評論:「我認爲通常的家庭作業規則是你應該顯示一些你已經嘗試過的代碼,沒有什麼可以評論的,如果不解決問題就很難提供幫助「。 – jrouquie