public void agacolustur2(İkiliAgacDugumu b, int deger)
        {
            İkiliAgacDugumu isaretci2 = b;

            for (int j = 0; j < (deger - b.seviye) / 2; j++)
            {
                if (isaretci2.sag.sag.veri.ToString() == "Beyaz")
                {
                    isaretci2 = isaretci2.sag.sag;
                    if (isaretci2.seviye != deger)
                    {
                        İkiliAgacDugumu node = new İkiliAgacDugumu("Beyaz", isaretci2.seviye + 1);
                        isaretci2.sol = node;
                        agacolustur(node, deger);
                        agacolustur2(node, deger);
                    }
                }
                else
                {
                }
            }
            while (b.sol != null)
            {
                b = b.sol;
                agacolustur2(b, deger);
            }
        }
Example #2
0
 public İkiliAgacDugumu(object veri, int seviye)
 {
     this.seviye = seviye;
     this.veri   = veri;
     sol         = null;
     sag         = null;
 }
        public void agacolustur(İkiliAgacDugumu a, int deger)
        {
            int s = a.seviye;

            for (int j = s; j < deger; j++)
            {
                isaretci = a;
                for (int i = 0; i < deger - a.seviye; i++)
                {
                    if (i % 2 == 0)
                    {
                        İkiliAgacDugumu siyah = new İkiliAgacDugumu("Siyah", isaretci.seviye + 1);
                        isaretci.sag = siyah;
                        isaretci     = isaretci.sag;
                    }
                    else
                    {
                        İkiliAgacDugumu beyaz = new İkiliAgacDugumu("Beyaz", isaretci.seviye + 1);
                        isaretci.sag = beyaz;
                        isaretci     = isaretci.sag;
                    }
                }
                İkiliAgacDugumu bbeyaz = new İkiliAgacDugumu("Beyaz", j + 1);
                a.sol = bbeyaz;
                a     = a.sol;
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            int             girilen_deger = Convert.ToInt32(textBox1.Text);
            İkiliAgacDugumu kok           = new İkiliAgacDugumu("Beyaz", 1);
            İkiliAgac       agac          = new İkiliAgac(kok);

            agac.agacolustur(kok, girilen_deger);
            agac.agacolustur2(kok, girilen_deger);
            agac.kokunsolunusay(kok, girilen_deger);
            agac.durumlarısay(kok, girilen_deger);
            MessageBox.Show(agac.durumsayisi().ToString());
            textBox1.Clear();
        }
        public void durumlarısay(İkiliAgacDugumu k, int deger)
        {
            İkiliAgacDugumu kok       = k;
            int             sayac     = k.seviye;
            İkiliAgacDugumu isaretci3 = k;

            while (isaretci3.sag != null)
            {
                isaretci3 = isaretci3.sag;
                if (isaretci3.veri.ToString() == "Beyaz")
                {
                    kokunsolunusay(isaretci3, deger);
                }
            }
            toplamdurumsayisi++;
        }
        public void kokunsolunusay(İkiliAgacDugumu k, int deger)
        {
            İkiliAgacDugumu kok            = k;
            int             sayac          = k.seviye;
            int             soldurumsayisi = 0;

            for (int m = 0; m < deger - k.seviye; m++)
            {
                İkiliAgacDugumu d = k;

                for (int i = 0; i < deger - sayac; i++)
                {
                    d = d.sol;

                    if (d.seviye == deger)
                    {
                        soldurumsayisi++;
                        break;
                    }
                }
                for (int j = k.seviye; j < sayac; j++)
                {
                    d = d.sag;
                    if (d.seviye == deger)
                    {
                        soldurumsayisi++;
                    }
                    if (d.veri.ToString() == "Beyaz")
                    {
                        kokunsolunusay(d, deger);
                    }
                }
                sayac++;
            }
            toplamdurumsayisi += soldurumsayisi;
        }
 public İkiliAgac(İkiliAgacDugumu kok)
 {
     this.kok = kok;
 }