- Lecsap az S26 Ultra az Exynos 2600-ra
- Xiaomi 15T Pro - a téma nincs lezárva
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- MIUI / HyperOS topik
- Milyen okostelefont vegyek?
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- iPhone topik
- Xiaomi 15 Ultra - kamera, telefon
- Poco F7 – bajnokesélyes
- Apple Watch
Ú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!
- Gaming notebook topik
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AliExpress tapasztalatok
- Víz- gáz- és fűtésszerelés
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Gumi és felni topik
- Battlefield 6
- Anime filmek és sorozatok
- Steam, GOG, Epic Store, Humble Store, Xbox PC Game Pass, Origin Access, uPlay+, Apple Arcade felhasználók barátságos izgulós topikja
- Windows 10
- További aktív témák...
- Bomba ár! Dell Latitude 5490 - i5-8GEN I 16GB I 256GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- HIBÁTLAN iPhone 13 mini 128GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3284
- Telefon felvásárlás!! Honor 200 Lite, Honor 200, Honor 200 Pro, Honor 200 Smart
- Bomba ár! Dell Latitude 5495 - Ryzen 5 I 8GB I 256SSD I 14" FHD I HDMI I Radeon I Cam I W10 I Gari
- LG 27GR95UM - 27" MiniLED - UHD 4K - 160Hz 1ms - NVIDIA G-Sync - FreeSync Premium PRO - HDR 1000
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
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 



