Dvejetainiai variantai wkpeda,

Прогулка с Лебедем
Bandysiu daryti tiesiog taip, kaip ir paminėjai - nuskaitysiu visus medžio elementus, sudėsiu į sąrašą, o po to iš sąrašo sudėsiu atgal į subalansuotą medį. Bet kuriuo atveju, algoritmas nebus sudėtingesnis nei įterpinėti į surikiuotą masyvą.
Jei duomenys pasiskirstę pagal iš anksto žinomą skirstinio artinį - gali daryti dvejetainį medį ne dalybos pusiau, o skirstinio dalybos pusiau dvejetainiai variantai wkpeda. Vienkartinis subalansavimas - perbėgti dvejetainį medį iš kairės į dešinę ir konstruoti balansuotą dvejetainį medį su iš anksto žinomais šakų ilgiais. Kaip minėjau, jei daugiau sarašo nemodifikuosi, tuomet paprasčiau viską supilti iš dvejetainio medžio į masyvą ir ieškant elemento dvejetainę paieška apsimesti, kad jis yra idealiai subalansuotas į gylį bei plotį medis.
Priklausomai nuo tavo elgsenos su duomenimis jei negaila papildomos atminties - bet, matyt, jei nori konstruoti medį, tai nieko nepralošitoks surikiuotas masyvas gali puikiausiai veikti kaip B-medžio šaknis. Algoritmą 2 optimizuodamas, gali nesunkiai gauti AVL algoritmą. Nepyk, jei balamutinu dvejetainiai variantai wkpeda nežinau užduoties ir jos nefunkcinių reikalavimų.
Sprendimų daug, ir vienas viskam netinka. Tuo labiau, retai klasikinis algoritmas tinka idealiai ir juos parinkti bei realizuoti paprastai labai neintuityvu - tiesiog neapsimoka pastangų.
Punktas 1 garantuoja visad surikuotą sąrašą minimaliomis sąnaudomis ir neblogu vidutiniu balansu; 2 garantuoja idealų subalansavimą netgi sparčiau nei balansuojant kiekvienos modifikacijos metu be abejo, ir "idealesnį" balansą nei klasikiniais red-black, B-tree arba AVL atvejais - pvz. A, ir beje - pirmiausia nežinau, kiek tavo duomenys sudėtingi bei kokie jų kiekiai.
Su mažais sąrašais iki ar pan. Iš viso redaguota 1 kartą.
Užsiregistravo: