Hirdetés
- Egy 20. évfordulós csodaegér fortyog a Razer üstjében
- Milyen videókártyát?
- Powerbank topik
- Milyen processzort vegyek?
- Azonnali alaplapos kérdések órája
- Milyen hangkártyát vegyek?
- RAM topik
- Kétszáznál is több játékhoz hozta el az FSR Redstone-t az új AMD Software
- Több száz játékban kezdi meg karrierjét az FSR Redstone
- Thermalright tulajok topikja
Új hozzászólás Aktív témák
-
thiclyoon
aktív tag
válasz
dabadab
#4013
üzenetére
Tudom, csak az kicsit kihaltabb, gondoltam itt aktívabbak vagytok

Tipikusan persze ahogy kiírtam ide, találtam is egy helyet, ahol azt írták amit te is a NULL-ról, szóval így már nem száll el

Kiíratásnál többféle lehet (amit írtam, az L(eft)-N(ode)-R(ight)), és mivel az adott fában itt "balra" kerülnek a kisebb elemek, "jobbra" a nagyobbak, így növekvő sorrendben fogja kiírni elvileg, és valóban így írja ki, szóval ez okésnak tűnik
+ meglett a db-szám is, ott a return-ben kellett kicsit ügyeskedni, nem magában a kódban. Találtam még néhány elég érdekes feladatot, de most már inkább szenvedek egy kicsit még a rekurzióval, hátha rájövök 
-
thiclyoon
aktív tag
Sziasztok!
Nem rég óta tanulom a C-t és a C++-t. Jelenleg bináris fákkal szórakozok egy ideje, előkerült néhány probléma. Pl. hogyan tudom megszámolni, hogy egy fában hány elem van? (Igazából az átlagukra is szükség lenne, szóval az összeg is kérdéses (egy elem többször is szerepelhet, a db is tárolva van), de azt jobban el tudom képzelni.)
Valamint kódszinten is elvesztem (vagy a kiíratással, vagy a törléssel van a gond. Addig bütyköltem, hogy már teljesen belezavarodtam - átnéztem már stackoverflow-ra és még néhány oldalra is), ha van ötletetek mi a ludas, várom a tanácsokat

(Furcsa lehet a pointer-pointer, de a teljes törléshez szerintem ez kéne. Ja és remélem érthető a kód azért.)
void del(pont ** Head)
{
if (*Head != NULL)
{
del(&((*Head)->Left));
del(&((*Head)->Right));
(*Head)->Left = NULL; //kerdeses hogy kell-e
(*Head)->Right = NULL; //szinten
free(*Head);
}
return;
}illetve
void kiir(pont * Head)
{
if (Head == NULL)
{
return;
}
if (Head->Left != NULL)
{
kiir(Head->Left);
}
printf("%d, %d-szor\n", Head->adat, Head->darab);
if (Head->Right != NULL)
{
kiir(Head->Right);
}
return;
}Futtatáskor a végén (del után) a Head ide mutat: 00794D38 (miért nem nullptr? nem az kéne legyen free után?), valamint nincs se error se warning, csak futás idejű hiba: Exception Thrown (az
if (Head->Left != NULL)sorban akiirfüggvényben). Köszönöm előre is, minden tanács jól jön!
Ú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!
- DJI Air 3 drón szett - telefonos távirányítóval
- Xiaomi 13T Magánszemélytől Garanciával
- ASUS ROG PG39WCDM Ívelt Gamer Oled Monitor!39"/2k ultrawide/240hz/0,03ms/Gsync-Freesync/Type-C/!
- Akciós! Makulátlan MacBook Pro 16" i9 16GB 1TB 5500M asztro szürke részletek a leírásban.
- UF Lenovo Yoga 9i x360 Érintős Hajtogatós Laptop Tab 14" -50% i7-1360P 16/1TB Iris Xe 2,8K OLED 90Hz
- Lenovo Thinkpad X1 Yoga 6th Gen. i7 11th, 32GB RAM, új akku, 4G LTE, toll, 27% ÁFÁS (0215)
- Microsoft Surface Laptop 5 13,5" Fekete i7-1265U 16GB 512GB magyarbill 1 év garancia
- Bomba ár! HP ProBook 640 G8 - i5-1145G7 I 16GB I 256GB SSD I 14" FULLHD I Cam I W11 I Gari!
- MacBook felvásárlás!! Macbook, Macbook Air, Macbook Pro
- Lenovo ThinkPad // T - Széria // X1 carbon // X1 Yoga 2-in-1 // és a többiek... 3-12. gen.
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


+ meglett a db-szám is, ott a return-ben kellett kicsit ügyeskedni, nem magában a kódban. Találtam még néhány elég érdekes feladatot, de most már inkább szenvedek egy kicsit még a rekurzióval, hátha rájövök 



