Diff for ''
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| # Binarni vyhledavaci strom - Prolog <{ForumPost(poster="Anonymous", timestamp=2009-06-15 13:10:24)}> Ahoj, nevite, jak v prologu otestovat, zda-li je objekt korektni binarni vyhledavaci strom? Stromy jsou struktury t(LeftSubTree, Root, RighSubTree). Diky moc predem! <{/ForumPost}> <{ForumPost(poster="Him", timestamp=2009-06-15 18:12:22)}> %match(+V,+LftBnd,+RgtBnd) fit(V,LftBnd,RgtBnd):-((number(LftBnd),V>=LftBnd);(LftBnd == nInf)),((number(RgtBnd),V<RgtBnd);(RgtBnd == pInf)). %binTree(+Tree) binTree(t(L,V,R)):-binTree(t(L,V,R),nInf,pInf). binTree(nil,_,_). binTree(t(L,V,R),LftBnd,RgtBnd):-fit(V,LftBnd,RgtBnd),binTree(L,LftBnd,V),binTree(R,V,RgtBnd). Snad to bude ono. Funguje to jednoduse tak, ze si drzim cestou v jakem rozmezi se musi hodnoty vrcholu pro jednotlive podstromy. Pokud se do stromu pridavaji stejne hodnoty, ktere ve stromu jiz jsou tak predikat pocita s tim, ze se davaji vzdy do praveho syna. nInf ~ -oo pInt ~ +oo Dej vedet, jestli to resi tvuj problem ;-) <{/ForumPost}> <{ForumPost(poster="Anonymous", timestamp=2009-06-15 19:39:04)}> Ahoj, vypada to v pohode, diky moc. Mimochodem, psal si to sam nebo to odnekud je? Pokud za b, mohl bys mi prosim napsat, odkud? <{/ForumPost}> <{ForumPost(poster="Him", timestamp=2009-06-15 19:44:40)}> Je to vlastní výroba. Ostatně je to nejpřímější způsob jak to napsat. To bys měl dát dohromady sám, ne? Nebo je na tom něco nejasného? <{/ForumPost}> |