私は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));
function: を記述する必要があります。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を使用する関数を書くことができません。私たちを手伝ってくれますか?