Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void ZrownowazDrzewo(int liczba)
- {
- WezelDrzewa[] tablica = new WezelDrzewa[liczba];
- int iloscWpisanych = 0;
- iloscWpisanych = WpiszDoTablicy(this.KorzenDrzewa, ref tablica, iloscWpisanych);
- // coś dalej
- int lewo = 0;
- int prawo = liczba - 1;
- int srodek = (lewo + prawo) / 2;
- this.KorzenDrzewa = tablica[srodek];
- this.KorzenDrzewa.LewaGalaz = null;
- this.KorzenDrzewa.PrawaGalaz = null;
- UtworzZTablicy(ref KorzenDrzewa.LewaGalaz, ref tablica, lewo, srodek-1);
- UtworzZTablicy(ref KorzenDrzewa.LewaGalaz, ref tablica, srodek+1, prawo);
- }
- private int WpiszDoTablicy(WezelDrzewa Wezel, ref WezelDrzewa[] tab, int liczba)
- {
- if(Wezel.LewaGalaz!=null)
- {
- liczba = WpiszDoTablicy(Wezel.LewaGalaz, ref tab, liczba);
- }
- tab[liczba] = Wezel;
- liczba++;
- if (Wezel.PrawaGalaz != null)
- {
- liczba = WpiszDoTablicy(Wezel.PrawaGalaz, ref tab, liczba);
- }
- return liczba;
- }
- private void UtworzZTablicy(ref WezelDrzewa Wezel, ref WezelDrzewa[] tab, int lewo, int prawo)
- {
- int srodek = (lewo + prawo) / 2;
- if(lewo<=prawo)
- {
- Wezel = tab[srodek];
- UtworzZTablicy(ref Wezel.LewaGalaz, ref tab, lewo, srodek - 1);
- UtworzZTablicy(ref Wezel.LewaGalaz, ref tab, srodek + 1, prawo);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment