binarny strom
mam taky problemik, mam binarny strom v c++.
udaje tam vkladam tak, ze v lavom podstrome
mam vzdy mensie hodnoty ako v rodicovy a v
pravom podstrome vacsie.
5
/ \
3 6
/\ /\
1 4 2 8
chapeme sa.
teraz ide o to, ze to mozem cez inorder
vypisat podla velkosti.
v uzle ale uchovavam aj hodnotu, kolko tych
cisel je (napr. sestku som nacital 5 krat,
stvork tri razy atd).
teraz chcem vypisat ten strom od najvacieho
po najmensi pocet tych cisiel.
ale ako na to???
nemozem to zoradovat tak ako to nacitavam, pretoze
este neviem,ake cisla budem mat. (a uz vobec nie kolko)
napadlo ma, ze si zistim pocet uzlov, alokujem take pole,
dvoj rozmerne, kde prva zlozka bude cislo a druha ich pocet.
a toto zoradim podla toho poctu.
ale to je asi nosenie dreva do lesa. potom ten strom akosi straca zmysel.
dik
Pre pridávanie komentárov sa musíte prihlásiť.
to je ok az na to, ze co sa stane, ked niektorych cisiel bude take iste mnozstvo ^^
PS: dufam ze klasicke sifry uz sa nepokusa prednasat introvertny zajo :D
2.) on ten strom moze pouzivat aj na nieco ine
.
ten strom je zaujimavy pri digramoch a tri gramoch. resp. pri zoradovani podla abecedy, avsak pre mna to je fuk, ci to mam podla abecedy zoradene. strom je lepsi na slovnikove utoky, kedy sa rychlejsie overi, ci nejake slovo sedi. (ak to ratam po pismenach). najblbsi cas pri strome je tusim n.log n
.
no, uvidim :)
nie, prednasa grosek :)