Lista powiązana-przejście do kolejnej "gałęzi"

0

Cześć

Piszę w C.
Opiszę zarys problemu:
-mamy strukturę

struct tree
{
    int value;
    struct tree *pointer;
};

-tworzymy kolejne pozycje listy i wskaźnik na początek listy

struct tree br1,br2,br3;
struct tree *start=&br1

-przypisujemy wartości

    br1.value=10;
    br1.pointer=&br2;
    br2.value=20;
    br2.pointer=&br3;
    br3.value=30;
    br3.pointer=(struct tree *)0;

Mam teraz funkcję do której przekazuję wskaźnik początku i chcę przechodzić po kolejnych branchach(br1,br2,br3).
W 1 książce robią to tak: pointer=pointer->value, ale to nie jest prawidłowe.
Jak prawidłowo przechodzić po kolejnych gałęziach?
Np. po to żeby zobaczyć, w której gałęzi znajduje się poszukiwana wartość?

while(pointer!=(struct tree *)0)
{
    if(pointer->value==number)
        return pointer;
    else
        {
            pointer=pointer->value;  // to nie zdaje egzaminu
        }
}

Proszę o pomoc

0

Do listy można dodać w dowolnym miejscu jakiś element.

Więc trzeba policzyć przy szukaniu ile razy się przeszło do następnego węzła listy.

Tak chyba najłatwiej.

0

1.Nie chcę podawać ilości elementów w liście.Po to stosuje końcowy wskaźnik który jest pusty
2.Moje pytanie dotyczy tego, w jaki sposób zmieniać wskaźnik, z 1 gałęzi na drugą.Bo rozwiązanie które znalazłem jest niezgodne z C, bo przypisujemy wartość wskaźnikowi a nie adres.

1 użytkowników online, w tym zalogowanych: 0, gości: 1