Hirdetés
- Lalikiraly: Kaáli Autó-Motor Múzeum
- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- Brogyi: CTEK akkumulátor töltő és másolatai
- eBay-es kütyük kis pénzért
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Magga: PLEX: multimédia az egész lakásban
- GoodSpeed: KLINTHOLM 3 fiókos fekete, acél, zárható kiegészítő elem
- sziku69: Fűzzük össze a szavakat :)
- ldave: New Game Blitz - 2025
Új hozzászólás Aktív témák
-
Azazel999
csendes tag
válasz
kingabo
#1999
üzenetére
Sikerült!

Ez lett a vágás metódus:
Fa* Fa::vag(Fa* v_pont){
vector<Fa*> kicsik;
vector<Fa*> nagyok;
Fa *aktualis = this, *kovetkezo;
//fa szétdarabolása
int count = 0;
while (aktualis->kulcs != v_pont->kulcs){
if (aktualis->kulcs < v_pont->kulcs){
kicsik.push_back(aktualis);
kovetkezo = aktualis->jobb;
aktualis->jobb->apa = NULL;
aktualis->jobb = NULL;
cout << "jobbra" << endl;
} else if (aktualis->kulcs > v_pont->kulcs){
nagyok.push_back(aktualis);
kovetkezo = aktualis->bal;
aktualis->bal->apa = NULL;
aktualis->bal = NULL;
cout << "balra" << endl;
}
aktualis = kovetkezo;
}
cout << "kint vagyok a ciklusbol" << endl;
//vágási elem gyrekeinek levágása
if (aktualis->bal != NULL){
cout << "vagasi_pontnak bal fia van" << endl;
kicsik.push_back(aktualis->bal);
aktualis->bal->apa = NULL;
aktualis->bal = NULL;
}
if (aktualis->jobb != NULL){
cout << "vagasi_pontnak jobb fia van" << endl;
nagyok.push_back(aktualis->jobb);
aktualis->jobb->apa = NULL;
aktualis->jobb = NULL;
}
cout << "vagasi pont gyerekei levagva" << endl;
vector<Fa*>::const_iterator iter;
//a kisebb- és nagyobb fa felépítése
for(int i = 1; i < kicsik.size(); ++i){
cout << "kisfa" << endl;
kicsik.at(0)->beszur(kicsik.at(i));
//kicsik.at(i)->kiir();
}
for(int j = 1; j < nagyok.size(); ++j){
cout << "nagyfa" << endl;
nagyok.at(0)->beszur(nagyok.at(j));
//nagyok.at(j)->kiir();
}
//a vágási pont gyökérré tétele, a két fa ráakasztása
v_pont->bal = kicsik.at(0);
v_pont->jobb = nagyok.at(0);
v_pont->bal->apa = v_pont;
v_pont->jobb->apa = v_pont;
//v_pont->kiir();
return v_pont;
}Bocs, ha nem volt egyértelmű a megfogalmazás, igyekeztem részletesen körülírni. Németh Tamás (SZTE-n tanít) honlapján az alga II. előadásfóliák között ott ez az önszervező bináris keresőfa (nem tudom, hogy szabad-e linkelni ide, ezért nem teszem). Ott folyamatábrával szemlélteti is, az sokkal érthetőbb, mint az én makogásom. Egyébként igazad lehet a rekurzióval, valószínűleg sokkal egyszerűbb lenne vele, de én már ennek is örülök. Ezt a metódust meg kell hívni a fa gyökerére, és a visszaadott érték lesz az új fa.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Azonnali alaplapos kérdések órája
- Miért fárad gyorsabban az iPhone akku, mint az androidos?
- Spórolós topik
- Google Pixel topik
- Milyen TV-t vegyek?
- Otthoni hálózat és internet megosztás
- BestBuy topik
- Milyen videókártyát?
- Samsung Galaxy A54 - türelemjáték
- Kormányok / autós szimulátorok topikja
- További aktív témák...
- Iphone 13 128gb Midnight 81% + töltő + füles + tok
- -ÚJ,2 ÉV GAR- DDR5 GAMER PC: RYZEN 5 8400F/9600X +RX 9060XT/9070/9070XT +16-64GB DDR5! SZÁMLA!
- DJI Mini 4 Pro Fly More Combo (DJI RC 2) (GL) (Bontatlan)
- Intel Core Ultra 7 265 20-Core (30M Cache, up to 5.30 GHz) LGA1851 OEM Processzor!
- Intel Core Ultra 5 235 14-Core (24M Cache, up to 5.00 GHz) LGA1851 OEM PROCESSZOR!
- HP 13 Elitebook 830 G7 FHD IPS 600nit i5-10210U 16GB 256GB SSD Intel UHD Win11 Pro 4G LTE Garancia
- BESZÁMÍTÁS! ASROCK B550M R5 5600X 32GB DDR4 512GB SSD RTX 3060 Ti 8GB Zalman Z1 Plus CM 750W
- Gamer PC-Számítógép! Csere-Beszámítás! R5 5600 / RX 6700XT 12GB / 16GB DDR4 / 500GB SSD
- 154 - Lenovo LOQ (15IRX9) - Intel Core i5-13450HX, RTX 4060
- BESZÁMÍTÁS! Asus B560M i5 10400F 16GB DDR4 512B SSD RX 6600XT 8GB AeroCool DS Cube ADATA 600W
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Laptopműhely Bt.
Város: Budapest


