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

Drzewa BST-CzyPotomek, CzyPrzodek

Cloud VPS
0 głosów
405 wizyt
pytanie zadane 4 lutego 2020 w C i C++ przez Kate1243 Nowicjusz (120 p.)
edycja 4 lutego 2020 przez Kate1243

Napisać funkcje sprawdzającą czy p jest potomkiem w : int CzyPotomek (wezel  *p, wezel *w)

Napisać funkcje sprawdzającą czy p jest przodkiem w : int CzyPrzodek (wezel  *p, wezel *w)

We wskazówkach mam zapisane, aby zrobić to rekurencyjnie.Pomoże ktoś ?

   struct wezel{
int klucz;
wezel *ojciec, *lewy, *prawy;
};

class BST{
wezel *korzen;

public:
int CzyPotomek (wezel *p, wezel *w);
int CzyPotomek (wezel *p, wezel *w);
};

 

komentarz 4 lutego 2020 przez tangarr Mędrzec (155,180 p.)
Bez kodu struktury/klasy wezel raczej nikt ci nie pomoże.
komentarz 4 lutego 2020 przez Kate1243 Nowicjusz (120 p.)

Edytowałam post, wstawiłam kod smiley

1 odpowiedź

0 głosów
odpowiedź 4 lutego 2020 przez tangarr Mędrzec (155,180 p.)

Zacznijmy od funkcji int CzyPotomek (wezel  *p, wezel *w)

Algorytm bazuje na trzech obserwacjach:
1. Jeżeli p nie ma rodzica to nie jest potomkiem w.
2. Jeżeli p jest dzieckiem w to jest jego potomkiem.
3. Sprawdź czy rodzic p jest potomkiem w.

Druga funkcja jest bardzo podobna. Węzeł jest p jest przodkiem węzła w wtedy i tylko wtedy, gdy węzeł w jest potomkiem węzła p.

komentarz 5 lutego 2020 przez Kate1243 Nowicjusz (120 p.)
W teorii rozumiem zależności między potomkiem, ojcem, synem , ale nie wiem jk to zapisać w kodzie
komentarz 5 lutego 2020 przez tangarr Mędrzec (155,180 p.)

Jeszcze troszkę ci pomogę.

int CzyPotomek (wezel  *p, wezel *w) {
    if (p nie ma rodzica)
        return 0;
    if (rodzic p == w)
        return 1;
    return CzyPotomek(rodzic wezła p, w);
}

Reszta w twoich rękach.

Podobne pytania

0 głosów
1 odpowiedź 1,131 wizyt
pytanie zadane 2 kwietnia 2019 w C i C++ przez Zielony12 Nowicjusz (200 p.)
0 głosów
1 odpowiedź 321 wizyt
pytanie zadane 24 maja 2018 w C i C++ przez kikosiak Obywatel (1,010 p.)
0 głosów
1 odpowiedź 165 wizyt
pytanie zadane 28 listopada 2023 w C i C++ przez natalia2002. Początkujący (400 p.)

93,467 zapytań

142,460 odpowiedzi

322,734 komentarzy

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