• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wypisywanie elementów drzewa binarnego

Cloud VPS
0 głosów
1,378 wizyt
pytanie zadane 17 stycznia 2018 w C i C++ przez k222 Nałogowiec (30,150 p.)
edycja 17 stycznia 2018 przez k222

Cześć, siedzę od pewnego czasu nad problemem jak wypisać elementy drzewa binarnego (w dowolnej kolejności) i w sumie rekurencja w tym przypadku dużo upraszcza, jest to zaledwie kilka linijek, ale czy ma ktoś pomysł jak osiągnąć to samo bez rekurencji?

* drzewo ma postać:

struct drzewo
{
int w;
drzewo *lewy;
drzewo *prawy;
}

więc wskaźniki są tylko na dzieci

2 odpowiedzi

+1 głos
odpowiedź 17 stycznia 2018 przez criss Mędrzec (172,570 p.)
wybrane 17 stycznia 2018 przez k222
 
Najlepsza
+2 głosów
odpowiedź 17 stycznia 2018 przez nik Obywatel (1,640 p.)
Może coś takiego, że wypisujesz lewe dziecko, prawe dziecko węzła i dodajesz węzeł do tablicy węzłów odwiedzonych. Następnie przeskakujesz z aktualnego węzła, na lewe dziecko, i wypisujesz lewą i prawą wartość dzieci. I teraz jeżeli węzeł nie ma już dzieci to wracasz do węzła rodzica (zakładam, że węzeł zna swojego rodzica) i jeżeli wszystkie dzieci węzła rodzica są już w tablicy odwiedzonych, to wracasz do kolejnego rodzica do momentu aż wszystkie dzieci korzenia drzewa będą znajdowały się w tablicy węzłów odwiedzonych. Pominąłem tutaj sprawdzanie czy węzeł jest NULL, ale coś takiego mi się nasunęło. Pewnie jest lepsze rozwiązanie, ale to tak na szybko.
komentarz 17 stycznia 2018 przez k222 Nałogowiec (30,150 p.)

Spoko w sumie, tylko nie dodałem :/ że może drzewo to coś w stylu:

struct drzewo
{
int w;
drzewo *lewy;
drzewo *prawy;
}

więc dziecko nie zna rodzica, 

1
komentarz 17 stycznia 2018 przez draghan VIP (106,230 p.)

więc dziecko nie zna rodzica, 

Wredne życie, smutny los. :<

Podobne pytania

0 głosów
2 odpowiedzi 1,114 wizyt
pytanie zadane 24 sierpnia 2017 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)
0 głosów
1 odpowiedź 302 wizyt

93,469 zapytań

142,404 odpowiedzi

322,716 komentarzy

62,852 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...