Używam OCaml. Mam typ:Drzewo binarne Pierwsze wyszukiwanie
type 'a bt = Empty | Node of 'a * 'a bt * 'a bt;;
Mam także przykładowy BST:
let tree = Node(1,Node(2,Node(4,Empty,Empty),Empty),Node(3,Node(5,Empty,Node(6,Empty,Empty)),Empty));
muszę napisać: breadthBT : 'a bt -> 'a list
funkcję, która będzie Szerokość pierwszego wyszukiwania przejścia. Dla powyższego drzewa przykładowego powinno ono powrócić: [1; 2; 3; 4; 5; 6]
Jak napisać tę funkcję? Mogę tylko napisać następującą funkcję, która wykorzystuje DST:
let rec breadthBT tree =
if tree=Empty then []
else let Node(w,l,r)=tree in (w::breadthBT l)@breadthBT r;;
Przede zwrotów funkcję (np drzewa) [1; 2; 4; 3; 5; 6]. Ale nie mogę napisać funkcji, która używa BFS. Czy mógłbyś mi pomóc?
Zgadzam się z komentarzem na temat ostatniego pytania o ocaml: "Myślę, że zwykłą regułą dla pracy domowej jest pokazanie kodu, który wypróbowałeś. Bez komentarza trudno jest pomóc bez rozwiązania problemu . " – jrouquie