Będzie potrzebna procedura tworząca N-elementową losową permutację
Oprócz procedury BST_Wysokosc() dodaj mechanizm obliczania wysokości podczas wykonywania BST_WstawWierz() na permutacji. Dodaj kontrolę czy oba sposoby obliczania wysokości są ze sobą zgodne. Pamiętaj że wysokość drzewa pustego i jedno-wierzchołkowego wynosi 0.
Program musi wydrukować coś podobnego do:
coreleft()=516704 N= 10; ilosc= 50; srednia wysokosc= ???.?? ; min= ??; max= ?? N= 20; ilosc= 50; srednia wysokosc= ???.?? ; min= ??; max= ?? N= 40; ilosc= 50; srednia wysokosc= ???.?? ; min= ??; max= ?? N= 80; ilosc= 50; srednia wysokosc= ???.?? ; min= ??; max= ?? N= 160; ilosc= 50; srednia wysokosc= ???.?? ; min= ??; max= ?? N= 320; ilosc= 50; srednia wysokosc= ???.?? ; min= ??; max= ?? N= 640; ilosc= 50; srednia wysokosc= ???.?? ; min= ??; max= ?? N= 1280; ilosc= 50; srednia wysokosc= ???.?? ; min= ??; max= ?? N= 2560; ilosc= 50; srednia wysokosc= ???.?? ; min= ??; max= ?? N= 5120; ilosc= 50; srednia wysokosc= ???.?? ; min= ??; max= ?? N=10240; ilosc= 50; srednia wysokosc= ???.?? ; min= ??; max= ?? coreleft()=516704Uwaga (jeśli używamy języka C):
Zadanie 22
Należy wypróbować działanie tej procedury na małym drzewie (wyświetlając drzewo procedurą BST_PokazPreorder2 po usunięciu każdego wierzchołka).
Trzeci punkt tej procedury jest przedstawiony na poniższym rysunku:
Zadanie 23
Zadanie 24
(implementacja grafów przy pomocy list sąsiedztw)
Grafem skierowanym nazywamy graf na którego krawędziach narysowano strzałki.
struct Graf {
int N; // liczba wierzchołków
// oraz cala reszta
};
struct GrafSkierowany {
int N; // liczba wierzchołków
// oraz cala reszta
};
void DodajKraw(Graf &g, int u, int v);
void DodajKraw(GrafSkierowany &g, int u, int v);
void UsunKraw(Graf &g, int u, int v);
void UsunKraw(GrafSkierowany &g, int u, int v);
void PokazGraf(Graf &g); void PokazGraf(GrafSkierowany &g);
Zadanie 24a
Zadanie 24b