Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections;
- // klasa pomocnicza Węzeł
- class Węzeł
- {
- public String wartość;
- public ArrayList dzieci;
- }
- // klasa Drzewo
- class Drzewo
- {
- public Węzeł korzeń;
- }
- class Program
- {
- static Węzeł UtwórzWęzeł( String wartość)
- {
- Węzeł węzeł = new Węzeł();
- węzeł.wartość = wartość;
- węzeł.dzieci = new ArrayList();
- return węzeł;
- }
- static void InicjujWęzeł(Węzeł węzeł, String wartość)
- {
- węzeł.wartość = wartość;
- węzeł.dzieci = new ArrayList();
- }
- static void DodajWęzeł(Węzeł węzeł, Węzeł dziecko)
- {
- węzeł.dzieci.Add(dziecko);
- }
- // pre-order
- static void Wypisuj(Węzeł węzeł)
- {
- Console.Write("(" + węzeł.wartość);
- if (węzeł.dzieci.Count > 0)
- {
- for (int i = 0; i < węzeł.dzieci.Count; i++ )
- {
- Wypisuj((Węzeł)węzeł.dzieci[i]);
- }
- }
- Console.Write(")");
- }
- // post-order
- static void WypisujPost(Węzeł węzeł)
- {
- // najpierw wypisujemy potomków
- if (węzeł.dzieci.Count > 0)
- {
- for (int i = 0; i < węzeł.dzieci.Count; i++)
- {
- WypisujPost((Węzeł)węzeł.dzieci[i]);
- }
- }
- // potem rodzica
- Console.Write(" " + węzeł.wartość);
- }
- static int Wysokość (Węzeł węzeł)
- {
- int wysokość = 0;
- for (int i = 0; i < węzeł.dzieci.Count; i++ )
- {
- Węzeł następnik = (Węzeł)węzeł.dzieci[i];
- wysokość = Math.Max(wysokość, Wysokość(następnik) + 1);
- }
- return wysokość;
- }// Zwraca wynik
- static void Main()
- {
- Drzewo drzewo = new Drzewo();
- drzewo.korzeń = UtwórzWęzeł("F");
- Węzeł wB = UtwórzWęzeł("B");
- Węzeł wA = UtwórzWęzeł("A");
- Węzeł wC = UtwórzWęzeł("C");
- Węzeł wD = UtwórzWęzeł("D");
- Węzeł wE = UtwórzWęzeł("E");
- Węzeł wG = UtwórzWęzeł("G");
- Węzeł wH = UtwórzWęzeł("H");
- Węzeł wI = UtwórzWęzeł("I");
- DodajWęzeł(wD, wC);
- DodajWęzeł(wD, wE);
- DodajWęzeł(wB, wA);
- DodajWęzeł(wB, wD);
- DodajWęzeł(wI, wH);
- DodajWęzeł(wG, wI);
- DodajWęzeł(drzewo.korzeń, wB);
- DodajWęzeł(drzewo.korzeń, wG);
- Wypisuj(drzewo.korzeń);
- Console.WriteLine();
- WypisujPost(drzewo.korzeń);
- Console.WriteLine();
- Console.WriteLine("wysokość = " + Wysokość(drzewo.korzeń));
- Console.ReadKey();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement