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

question-closed Skopiowanie drzewa BST i iteracyjna wysokość drzewa AVL

VPS Starter Arubacloud
0 głosów
276 wizyt
pytanie zadane 20 marca 2017 w Algorytmy przez J0ker Pasjonat (15,400 p.)
zamknięte 27 sierpnia 2020 przez J0ker
Dzień dobry, mam 2 problemy:

1. Skopiowanie drzewa BST.- argument - wskaźnik do korzenia.

2. Na ćwiczeniach było rekurencyjne obliczenie wysokości drzewa AVL, a ja muszę zrobić iteracyjne.

Umieściłęm temat w Dziale Algorytmy, ponieważ mam problem z samą metodą jak to zrobić (konkretnie mam to napisać w języku C). Domyślam, się, że skopiowanie będzie rekurencyjne (kopiuj wierzchołek, kopiuj->lewe,kopiuj>prawe) ale nie ogarniam. W obu procedurach i tego jestem pewny zacząłbym od sprawdzenia czy drzewo jest puste i jeśli tak zwróciłbym 0 (return 0;) Zupełnie natomiast nie mam pomysłu na iteracyjne AVL.

Ogólnie to rozumiem dobrze funkcje z wykładu i ćwiczeń gdy są juz gotowe podane na tacy, ale sam je wymyślać to bym nie wymyśił nic z nich...

Prosiłbym raczej o porady, wskazówki niż gotowe rozwiązania. Z góry dziękuję za każdą pomoc.
komentarz zamknięcia: pojawiła się odpowiedź; stare pytanie

1 odpowiedź

+1 głos
odpowiedź 14 kwietnia 2017 przez d0n Mądrala (6,440 p.)
wybrane 2 maja 2017 przez J0ker
 
Najlepsza

Jeśli chodzi o drzewo BST, to jeśli implementacja samego drzewa jest taka, że przez NULL oznaczamy brak danego syna, a każdy węzel posiada składowe wskaźniki node* lewy i node* prawy to z grubsza wyglądało by to tak

void dfs ( node* v, node* v_w_nowym_drzewie )
{
 skopiuj wszystkie wartosci z v do v_w_nowym_drzewie oprócz adresów synów
 
 jesli lewy syn v != NULL
    przypisz v_w_nowym_drzewie pamiec na lewego syna
    wywolaj dfs( adres lewego syna v, adres lewego syna v_w_nowym_drzewie)
 potem to samo dla prawego syna 

}

 

 

1
komentarz 2 maja 2017 przez J0ker Pasjonat (15,400 p.)
Serdecznie dziękuję za odpowiedź. Niestety nie udało mi się zrobić tamtej pracy domowej, Doceniam jednak to, że znalazł Pan czas na odpowiedź.

 

Pozdrawiam.

Temat administracja może zamknąć.

Podobne pytania

0 głosów
1 odpowiedź 912 wizyt
pytanie zadane 23 maja 2018 w C i C++ przez szalonydywan Nowicjusz (140 p.)
0 głosów
1 odpowiedź 334 wizyt
pytanie zadane 4 lutego 2020 w C i C++ przez Kate1243 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 799 wizyt
pytanie zadane 2 kwietnia 2019 w C i C++ przez Zielony12 Nowicjusz (200 p.)

92,834 zapytań

141,778 odpowiedzi

320,826 komentarzy

62,164 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.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...