[Pascal] Liczba parzystych ścieżek w drzewie BST

Humanista123
Użytkownik
Użytkownik
Posty: 54
Rejestracja: 1 sty 2017, o 20:32
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 17 razy

[Pascal] Liczba parzystych ścieżek w drzewie BST

Post autor: Humanista123 »

Witajcie Mam zadanie.

Napisz funkcję, która dla drzewa binarnego etykietowanego liczbami całkowitymi obliczy liczbę liści, do których można dojść od korzenia wyłącznie po wierzchołkach o parzystych etykietach.

Typ wskaźnikowy:

Kod: Zaznacz cały

type wsk=^wierzcholek;
wierzcholek=record
klucz:integer;
lewy,prawy,ojciec:wsk
end
Kod:

Kod: Zaznacz cały

function parzyste(r:wsk):integer;
begin
if r^.prawy=nil and r^.lewy=nil then parzyste:=1
else
    begin
    if r^.klucz mod 2=0 then
    parzyste:=parzyste(r^.lewy)+parzyste(r^.prawy)
    else parzyste:=0;
    end;
end.
Założyłem, że jesli w samym liściu jest klucz o etykiecie nieparzystej, to jest ok. Uprzejmie prosze o sprawdzenie, czy dobrze to napisałem
karakuku
Użytkownik
Użytkownik
Posty: 226
Rejestracja: 14 sie 2016, o 17:31
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 20 razy
Pomógł: 60 razy

Re: [Pascal] Liczba parzystych ścieżek w drzewie BST

Post autor: karakuku »

Tu tak samo.
Jak znajdziemy się na parzystym wierzchołku z jednym synem to wywołamy tą procedurę od r=nil i pierwsze do czego się odwołamy to r^.prawy i w tym momencie mamy crasha, a poza tym w porządku
Humanista123
Użytkownik
Użytkownik
Posty: 54
Rejestracja: 1 sty 2017, o 20:32
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 17 razy

Re: [Pascal] Liczba parzystych ścieżek w drzewie BST

Post autor: Humanista123 »

Dzięki wielkie
ODPOWIEDZ