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

Drzewko czwórkowe- poruszanie się

0 głosów
401 wizyt
pytanie zadane 1 czerwca 2021 w C i C++ przez Nekronomik Użytkownik (600 p.)
Witam, mam napisane drzewko czwórkowe które tworzy się dynamicznie dodając nowe węzły i obiekty i z tym nie ma problemu. Problem jest taki że nie mogę nic wymyśleć jak teraz dostać się do każdego obiektu  w tym drzewku.
Obiekty przechowuje w osobnym kontenerze dwukierunkowym które dodaje do drzewka.
Drzewko tez jest osobnym kontenerem.
komentarz 2 czerwca 2021 przez tangarr Mędrzec (155,120 p.)
Co masz na myśli mówiąc "dostać się do każdego elementu"?
Chcesz przeiterować po całym drzewie?
Pokaż strukturę drzewa.
komentarz 2 czerwca 2021 przez Nekronomik Użytkownik (600 p.)
class Drzewko_czworkowe_kontener
{
    public:
        Drzewko_czworkowe_kontener *K;
        Drzewko_czworkowe_kontener *A;
        Drzewko_czworkowe_kontener *B;
        Drzewko_czworkowe_kontener *C;
        Drzewko_czworkowe_kontener *D;
        Obiekt *zapisz_A;
        Obiekt *zapisz_B;
        Obiekt *zapisz_C;
        Obiekt *zapisz_D;
        int x1;
        int x2;
        int y1;
        int y2;
        Drzewko_czworkowe_kontener()
        {
            K=NULL;
            A=NULL;
            B=NULL;
            C=NULL;
            D=NULL;
            zapisz_A=NULL;
            zapisz_B=NULL;
            zapisz_C=NULL;
            zapisz_D=NULL;
        }
        int z_x1(int &n_x1) {return x1=n_x1;}
        int z_x2(int &n_x2) {return x2=n_x2;}
        int z_y1(int &n_y1) {return y1=n_y1;}
        int z_y2(int &n_y2) {return y2=n_y2;}
};

Dokładnie chcę przeiterować całe drzewko aby sprawdzać obiekty które są blisko siebie

komentarz 2 czerwca 2021 przez j23 Mędrzec (195,220 p.)

No a rekurencyjnie próbowałeś?

void foo(Drzewko_czworkowe_kontener* root)
{
    if(!root) return;

    foo(root->K);
    foo(root->A);
    foo(root->B);
    foo(root->C);
    foo(root->D);    
}

 

komentarz 8 czerwca 2021 przez Nekronomik Użytkownik (600 p.)
Rekurencja całkowicie wypadła mi z głowy. Teraz funkcja ładnie skacze po każdej gałęzi. Dzięki wielkie.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 322 wizyt
pytanie zadane 26 września 2020 w C i C++ przez olamas Nowicjusz (160 p.)
0 głosów
0 odpowiedzi 419 wizyt
pytanie zadane 6 lipca 2021 w C i C++ przez Nekronomik Użytkownik (600 p.)
0 głosów
0 odpowiedzi 199 wizyt
pytanie zadane 14 czerwca 2021 w C i C++ przez Nekronomik Użytkownik (600 p.)

93,777 zapytań

142,736 odpowiedzi

323,388 komentarzy

63,381 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...