Example #1
0
 public void PushBST(int wartosc, Wezel w)
 {
     if (wartosc >= w.wartosc)
     {
         if (w.prawe == null)
         {
             w.prawe = new Wezel(wartosc);
         }
         else
         {
             PushBST(wartosc, w.prawe);
         }
     }
     else
     {
         if (w.lewe == null)
         {
             w.lewe = new Wezel(wartosc);
         }
         else
         {
             PushBST(wartosc, w.lewe);
         }
     }
 }
Example #2
0
        public void Push(int n)
        {
            Wezel dziecko = new Wezel(n);

            if (korzen == null)
            {
                korzen = dziecko;
                return;
            }
            else
            {
                Wezel rodzic = ZnajdzRodzica(lenght);
                if (lenght % 2 == 1)
                {
                    rodzic.lewe = dziecko;
                }
                else
                {
                    rodzic.prawe = dziecko;
                }
                dziecko.rodzic = rodzic;
                lenght++;
                SortujKopiec(dziecko);
            }
        }
Example #3
0
        Wezel ZnajdzRodzica(int len)
        {
            List <int> droga = new List <int>();
            int        n     = len;

            while (n > 0)
            {
                n--;
                n = n / 2;
                droga.Add(n);
            }
            Wezel Rodzic = korzen;

            droga.Reverse();
            for (int i = 1; i < droga.Count; i++)
            {
                if (droga[i] % 2 == 1)
                {
                    Rodzic = Rodzic.lewe;
                }
                else
                {
                    Rodzic = Rodzic.prawe;
                }
            }
            return(Rodzic);
        }
Example #4
0
 public void ShowPOST(Wezel w)
 {
     if (w == null)
     {
         return;
     }
     ShowPOST(w.lewe);
     ShowPOST(w.prawe);
     Post.Add(w.wartosc);
 }
Example #5
0
 public void ShowIN(Wezel w)
 {
     if (w == null)
     {
         return;
     }
     ShowIN(w.lewe);
     In.Add(w.wartosc);
     ShowIN(w.prawe);
 }
Example #6
0
        public void ShowPRE(Wezel w)
        {
            if (w == null)
            {
                return;
            }

            Pre.Add(w.wartosc);
            ShowPRE(w.lewe);
            ShowPRE(w.prawe);
        }
Example #7
0
 void ShowNode(Wezel node, TreeNode treeNode)
 {
     treeNode.Text += node.wartosc;
     if (node.lewe != null)
     {
         ShowNode(node.lewe, treeNode.Nodes.Add("Lewe: "));
     }
     if (node.prawe != null)
     {
         ShowNode(node.prawe, treeNode.Nodes.Add("Prawe: "));
     }
 }
Example #8
0
 void SortujKopiec(Wezel n)
 {
     if (n.rodzic == null)
     {
         return;
     }
     else
     {
         if (n.wartosc > n.rodzic.wartosc)
         {
             int pom = n.wartosc;
             n.wartosc        = n.rodzic.wartosc;
             n.rodzic.wartosc = pom;
             SortujKopiec(n.rodzic);
         }
     }
 }
Example #9
0
        public void Push(int wartosc)
        {
            var dziecko = new Wezel(wartosc);
            var rodzic  = this.ZnajdzRodzica(this.Length);

            dziecko.rodzic = rodzic;

            if (this.Length % 2 == 1)
            {
                rodzic.lewe = dziecko;
            }
            else
            {
                rodzic.prawe = dziecko;
            }
            this.Length++;
            this.JakGlebokie();
        }
Example #10
0
 void Sort(Wezel rodzic)
 {
     if (rodzic == null)
     {
         return;
     }
     if (rodzic.lewe == null && rodzic.prawe == null)
     {
         return;
     }
     if (rodzic.lewe != null && rodzic.prawe == null)
     {
         if (rodzic.wartosc < rodzic.lewe.wartosc)
         {
             int x = new int();
             x = rodzic.wartosc;
             rodzic.wartosc      = rodzic.lewe.wartosc;
             rodzic.lewe.wartosc = x;
         }
         Sort(rodzic.lewe);
         return;
     }
     if (rodzic.lewe == null && rodzic.prawe != null)
     {
         if (rodzic.wartosc < rodzic.prawe.wartosc)
         {
             int x = new int();
             x = rodzic.wartosc;
             rodzic.wartosc       = rodzic.prawe.wartosc;
             rodzic.prawe.wartosc = x;
         }
         Sort(rodzic.prawe);
         return;
     }
     if (rodzic.lewe != null && rodzic.prawe != null)
     {
         if (rodzic.lewe.wartosc > rodzic.prawe.wartosc)
         {
             if (rodzic.wartosc < rodzic.lewe.wartosc)
             {
                 int x = new int();
                 x = rodzic.wartosc;
                 rodzic.wartosc      = rodzic.lewe.wartosc;
                 rodzic.lewe.wartosc = x;
             }
         }
         else
         {
             if (rodzic.wartosc < rodzic.prawe.wartosc)
             {
                 int x = new int();
                 x = rodzic.wartosc;
                 rodzic.wartosc       = rodzic.prawe.wartosc;
                 rodzic.prawe.wartosc = x;
             }
         }
         Sort(rodzic.lewe);
         Sort(rodzic.prawe);
         return;
     }
 }
Example #11
0
 void Zmianawartosci(Wezel n)
 {
     if (n.lewe == null & n.prawe == null & n == korzen)
     {
         korzen = null;
         return;
     }
     if (n.lewe != null && n.prawe != null)
     {
         if (n.prawe.wartosc > n.lewe.wartosc)
         {
             n.wartosc = n.prawe.wartosc;
             if (n.prawe.prawe == null & n.prawe.lewe == null)
             {
                 n.prawe = null;
             }
             else
             {
                 Zmianawartosci(n.prawe);
             }
         }
         else
         {
             n.wartosc = n.lewe.wartosc;
             if (n.lewe.prawe == null & n.lewe.lewe == null)
             {
                 n.lewe = null;
             }
             else
             {
                 Zmianawartosci(n.lewe);
             }
             return;
         }
     }
     if (n.lewe != null && n.prawe == null)
     {
         n.wartosc = n.lewe.wartosc;
         if (n.lewe.prawe == null & n.lewe.lewe == null)
         {
             n.lewe = null;
         }
         else
         {
             Zmianawartosci(n.lewe);
         }
         return;
     }
     if (n.lewe == null && n.prawe != null)
     {
         n.wartosc = n.prawe.wartosc;
         if (n.prawe.prawe == null & n.prawe.lewe == null)
         {
             n.prawe = null;
         }
         else
         {
             Zmianawartosci(n.prawe);
         }
         return;
     }
 }
Example #12
0
 public Kopiec(Wezel korzen)
 {
     this.korzen = korzen;
 }
Example #13
0
 public Drzewo(int wartosc)
 {
     this.korzen    = new Wezel(wartosc);
     this.Length    = 1;
     this.glebokosc = 0;
 }