예제 #1
0
            private static bs_WezelDrzewa <BT, TV> bs_utworz_wezel(BT bs_dane)
            {
                bs_WezelDrzewa <BT, TV> bs_wezel = new bs_WezelDrzewa <BT, TV>();

                bs_wezel.bs_Dane = bs_dane;
                return(bs_wezel);
            }
예제 #2
0
            private bs_WezelDrzewa <BT, TV> bs_znajdz(BT key, bool Ex = true)
            {
                bs_WezelDrzewa <BT, TV> bierz = bs_korzen_drzewa;

                while (bierz != null)
                {
                    int compare = bierz.bs_Dane.CompareTo(key);
                    if (compare == 0)
                    {
                        return(bierz);
                    }
                    else if (compare < 0)
                    {
                        bierz = bierz.bs_Prawa_Galaz;
                    }
                    else
                    {
                        bierz = bierz.bs_Lewa_Galaz;
                    }
                }
                if (Ex == true)
                {
                    throw new KeyNotFoundException();
                }
                else
                {
                    return(null);
                }
            }
예제 #3
0
 public bs_DrzewoBinarne(BT bs_wartosc_korzenia)
 {
     if (typeof(BT).Equals(typeof(Int32)))
     {
         bs_korzen_drzewa = bs_utworz_wezel(bs_wartosc_korzenia);
     }
 }
예제 #4
0
            public string bs_Insert(BT bs_wartosc)
            {
                string bs_czy_dodano             = "";
                bs_WezelDrzewa <BT, TV> bs_wezel = new bs_WezelDrzewa <BT, TV>(bs_wartosc);

                bs_czy_dodano = bs_Insert(bs_wezel);
                return(bs_czy_dodano);
            }
예제 #5
0
            private string bs_wypisz_drzewo_postfix(bs_WezelDrzewa <BT, TV> bs_wezel)
            {
                string bs_wynik = "";

                if ((bs_wezel != null))
                {
                    bs_licznik_postfix++;
                    bs_wynik += bs_wypisz_drzewo_postfix(bs_wezel.bs_Lewa_Galaz);

                    bs_wynik += bs_wypisz_drzewo_postfix(bs_wezel.bs_Prawa_Galaz);
                    bs_wynik += Convert.ToString(bs_wezel.bs_Dane);
                }
                for (int bs_i = 0; bs_i <= 10; bs_i++)
                {
                    bs_lista_postfix.Add(bs_licznik_postfix);
                }
                return(bs_wynik);
            }
예제 #6
0
 private void bs_Insert(bs_WezelDrzewa <BT, TV> bs_wezel, ref bs_WezelDrzewa <BT, TV> bs_rodzic)
 {
     if (bs_rodzic == null)
     {
         bs_rodzic = bs_wezel;
     }
     else
     {
         if (bs_wezel.bs_Dane.CompareTo(bs_rodzic.bs_Dane) < 0)
         {
             bs_Insert(bs_wezel, ref bs_rodzic.bs_Lewa_Galaz);
         }
         else if (bs_wezel.bs_Dane.CompareTo(bs_rodzic.bs_Dane) > 0)
         {
             bs_Insert(bs_wezel, ref bs_rodzic.bs_Prawa_Galaz);
         }
     }
 }
예제 #7
0
            public string bs_Insert(bs_WezelDrzewa <BT, TV> bs_wezel)
            {
                string bs_czy_dodano = "";

                if (bs_wezel == null)
                {
                    bs_licznik_insert_dodanie_jednego_elementu++;
                    bs_czy_dodano = "Nie dodano elementu";
                }
                else if (bs_korzen_drzewa == null)
                {
                    bs_licznik_insert_dodanie_jednego_elementu++;
                    bs_korzen_drzewa = bs_wezel;
                    bs_czy_dodano    = "Korzen byl pusty.Dodano jeden element";
                }
                else
                {
                    bs_licznik_insert_dodanie_jednego_elementu++;
                    bs_Insert(bs_wezel, ref bs_korzen_drzewa);
                    bs_czy_dodano = "Korzen nie byl pusty. Dodano element";
                }
                return(bs_czy_dodano);
            }
예제 #8
0
            public void insert(BT bs_dane)
            {
                bs_WezelDrzewa <BT, TV> bs_bierzacy = bs_korzen_drzewa;
                bs_WezelDrzewa <BT, TV> bs_nastepny = bs_korzen_drzewa;



                while (!(bs_bierzacy == null))
                {
                    bs_licznik_insert++;
                    bs_lista_licznika_insert.Add(bs_licznik_insert);
                    bs_nastepny   = bs_bierzacy;
                    bs_porownanie = bs_bierzacy.bs_Dane.CompareTo(bs_dane);
                    bs_bierzacy   = bs_porownanie < 0 ? bs_bierzacy.bs_Prawa_Galaz : bs_bierzacy.bs_Lewa_Galaz;
                }

                if (bs_porownanie == 0)
                {
                    bs_licznik_insert++;
                    bs_lista_licznika_insert.Add(bs_licznik_insert);

                    bs_duplikat = "Wystapil duplikat, ktory nie bedzie dodany";
                }
                else
                if (bs_porownanie < 0)
                {
                    bs_licznik_insert++;
                    bs_lista_licznika_insert.Add(bs_licznik_insert);
                    bs_nastepny.bs_Prawa_Galaz = bs_utworz_wezel(bs_dane);
                }
                else
                {
                    bs_licznik_insert++;
                    bs_lista_licznika_insert.Add(bs_licznik_insert);
                    bs_nastepny.bs_Lewa_Galaz = bs_utworz_wezel(bs_dane);
                }
            }
예제 #9
0
 public bs_WezelDrzewa <BT, TV> FindMin(bs_WezelDrzewa <BT, TV> bs_wezel)
 {
     return(FindMin(bs_korzen_drzewa));
 }
예제 #10
0
 public bs_DrzewoBinarne()
 {
     bs_korzen_drzewa = null;
 }