private int ElamanSayisiInt(IkiliAramaAgacDugumu dugum)
        {
            int elemanSayisi = 0;

            if (dugum != null)
            {
                elemanSayisi  = 1;
                elemanSayisi += ElamanSayisiInt(dugum.sol);
                elemanSayisi += ElamanSayisiInt(dugum.sag);
            }
            return(elemanSayisi);
        }
 public int YaprakSayisi(IkiliAramaAgacDugumu dugum)
 {
     if (dugum == null)//Düğümün içi boşsa demekki öyle bir düğüm yoktur yani NULL'dır.
     {
         return(0);
     }
     if (dugum.sag != null || dugum.sol != null)//Düğümün sağı ve solunu kontrol ediyorum.
     {
         return(YaprakSayisi(dugum.sol) + YaprakSayisi(dugum.sag));
     }
     else
     {
         return(sayacYaprak + 1);
     }
 }
 private IkiliAramaAgacDugumu AraInt(IkiliAramaAgacDugumu dugum, string anahtar)
 {
     if (dugum == null)
     {
         return(null);
     }
     else if (((Kisi)dugum.veri).Ad == anahtar) //düğümdeki kişi adı arana kişiye eşitse düğümü döndür
     {
         return(dugum);
     }
     else if (((Kisi)dugum.veri).Ad[0] > anahtar[0]) //düğümdeki kişi adının ilk harfi aranan kişinin ilk harfindan büyükse sola git
     {
         return(AraInt(dugum.sol, anahtar));
     }
     else //düğümdeki kişi adının ilk harfi aranan kişinin ilk harfindan küçükse sağa git
     {
         return(AraInt(dugum.sag, anahtar));
     }
 }
        private IkiliAramaAgacDugumu Successor(IkiliAramaAgacDugumu silDugum)
        {
            IkiliAramaAgacDugumu ParentSuccessor = silDugum;
            IkiliAramaAgacDugumu current         = silDugum.sag;
            IkiliAramaAgacDugumu successor       = silDugum;

            while (!(current == null))
            {
                ParentSuccessor = current;
                successor       = current;
                current         = current.sol;
            }
            if (!(successor == silDugum.sag))
            {
                ParentSuccessor.sol = successor.sag;
                successor.sag       = silDugum.sag;
            }
            return(successor);
        }
 private IkiliAramaAgacDugumu AraInt(IkiliAramaAgacDugumu dugum,
                                     int anahtar)
 {
     if (dugum == null)
     {
         return(null);
     }
     else if (((Kisi)dugum.veri).TCKimlikNo == anahtar)
     {
         return(dugum);
     }
     else if (((Kisi)dugum.veri).TCKimlikNo > anahtar)
     {
         return(AraInt(dugum.sol, anahtar));
     }
     else
     {
         return(AraInt(dugum.sag, anahtar));
     }
 }
        private IkiliAramaAgacDugumu Successor(IkiliAramaAgacDugumu silDugum)
        {
            IkiliAramaAgacDugumu successorParent = silDugum;
            IkiliAramaAgacDugumu successor       = silDugum;
            IkiliAramaAgacDugumu current         = silDugum.sag; //silinecek düğümün sağı varsa current'a ata

            while (current != null)
            {
                //Current null değilse null olana kadar sola git
                successorParent = successor;
                successor       = current;
                current         = current.sol;
            }
            if (successor != silDugum.sag) //successor silinecek düğümün sağıdaysa yani daha küçük yoksa(sola gidilmediyse) yer değiştirme işlemi yap daha sonra successor'ü gönder
            {
                successorParent.sol = successor.sag;
                successor.sag       = silDugum.sag;
            }
            return(successor);
        }
示例#7
0
 private void btnBasvuruYap_Click(object sender, EventArgs e)
 {
     if (ListIsIlanlari.SelectedItem == null)
     {
         MessageBox.Show("Lütfen işyeri seçiniz!!!");
     }
     else
     {
         if (txtBasvuranTCK.Text == "")
         {
             MessageBox.Show("Başvuracak kişinin TC kimlik numarasını giriniz.");
         }
         else
         {
             IkiliAramaAgacDugumu bul = new IkiliAramaAgacDugumu();
             bul = IkiliAramaAgaci.Ara(Convert.ToInt32(txtBasvuranTCK.Text));
             if (bul == null)
             {
                 MessageBox.Show("Kişi Bilgisi Bulunamadı!");
             }
             else
             {
                 IlanBilgileri ilan = new IlanBilgileri();
                 ilan = hashChainTable.GetIlan(ListIsIlanlari.SelectedIndex + 1);
                 Kisi kisi1 = ((Kisi)bul.veri);
                 if (((IlanBilgileri)ilan).heapIlanBasvurusu.Search(((IlanBilgileri)ilan).heapIlanBasvurusu, kisi1) == true)
                 {
                     MessageBox.Show("Önceden başvurduğunuz ilana tekrar başvuramazsınız!!!.");
                 }
                 else
                 {
                     Random random = new Random();
                     kisi1.IsUygunluk         = random.Next(0, 10);
                     txtIseUygunlukPuani.Text = Convert.ToString(kisi1.IsUygunluk);
                     ((IlanBilgileri)ilan).heapIlanBasvurusu.Insert(kisi1);
                     MessageBox.Show("Başvurunuz Alınmıştır.");
                 }
             }
         }
     }
 }
 private int DerinlikBulInt(IkiliAramaAgacDugumu dugum)
 {
     if (dugum == null)
     {
         return(0);
     }
     else
     {
         int solHeight = 0, sagHeight = 0;
         solHeight = DerinlikBulInt(dugum.sol);
         sagHeight = DerinlikBulInt(dugum.sag);
         if (solHeight > sagHeight)
         {
             return(solHeight + 1);
         }
         else
         {
             return(sagHeight + 1);
         }
     }
 }
 private int DerinlikBulInt(IkiliAramaAgacDugumu dugum)
 {
     if (dugum == null)
     {
         return(0);
     }
     else
     {
         int solYukseklik = 0, sagYukseklik = 0;
         solYukseklik = DerinlikBulInt(dugum.sol); //Düğümün solu oldukça sola git
         sagYukseklik = DerinlikBulInt(dugum.sag); //Düğümün sağı oldukça sağa git
         if (solYukseklik > sagYukseklik)
         {
             return(solYukseklik + 1);
         }
         else
         {
             return(sagYukseklik + 1);
         }
     }
 }
        public void Ekle(Kisi deger)
        {
            //Yeni eklenecek düğümün parent'ı
            IkiliAramaAgacDugumu tempParent = new IkiliAramaAgacDugumu();
            //Kökten başla ve ilerle
            IkiliAramaAgacDugumu tempSearch = kok;

            while (tempSearch != null)
            {
                tempParent = tempSearch;
                //Deger zaten var, çık.
                if (deger.TCKimlikNo == ((Kisi)tempSearch.veri).TCKimlikNo)
                {
                    return;
                }
                else if (deger.TCKimlikNo < ((Kisi)tempSearch.veri).TCKimlikNo)
                {
                    tempSearch = tempSearch.sol;
                }
                else
                {
                    tempSearch = tempSearch.sag;
                }
            }
            IkiliAramaAgacDugumu eklenecek = new IkiliAramaAgacDugumu(deger);

            //Ağaç boş, köke ekle
            if (kok == null)
            {
                kok = eklenecek;
            }
            else if (deger.TCKimlikNo < ((Kisi)tempParent.veri).TCKimlikNo)
            {
                tempParent.sol = eklenecek;
            }
            else
            {
                tempParent.sag = eklenecek;
            }
        }
示例#11
0
 private void btnGuncelle_Click(object sender, EventArgs e)
 {
     IkiliAramaAgacDugumu = IkiliAramaAgaci.Ara(Convert.ToInt32(AdayTCKimlik.Text));
     if (IkiliAramaAgacDugumu == null)
     {
         MessageBox.Show("Böyle biri bulunamadı!!!");
     }
     else
     {
         kisi                 = ((Kisi)IkiliAramaAgacDugumu.veri);
         kisi.Ad              = txtGuncelleAd.Text;
         kisi.Soyad           = txtGuncelleSoyad.Text;
         kisi.TelNo           = txtGuncelleTelNo.Text;
         kisi.Eposta          = txtGuncelleEposta.Text;
         kisi.Uyruk           = txtGuncelleUyruk.Text;
         kisi.DogumYeri       = txtGuncelleDogumYeri.Text;
         kisi.MedeniDurum     = txtGuncelleMedeniDurum.Text;
         kisi.Adres           = txtGuncelleAdresBilgisi.Text;
         kisi.ReferansKisiler = txtGuncelleReferans.Text;
         kisi                 = new Kisi();
         MessageBox.Show("Başarıyla Aday Güncellendi.");
     }
 }
示例#12
0
 private void btnAdayAra_Click(object sender, EventArgs e)
 {
     IkiliAramaAgacDugumu = IkiliAramaAgaci.Ara(Convert.ToInt32(txtTCKimlikNo.Text));
     if (IkiliAramaAgacDugumu == null)
     {
         MessageBox.Show("Böyle biri bulunamadı!!!");
     }
     else
     {
         Node egitimBilgisi = new Node();
         kisi = ((Kisi)IkiliAramaAgacDugumu.veri);
         txtGuncelleAd.Text           = kisi.Ad;
         txtGuncelleSoyad.Text        = kisi.Soyad;
         txtGuncelleTelNo.Text        = kisi.TelNo;
         txtGuncelleEposta.Text       = kisi.Eposta;
         txtGuncelleYabanciDil.Text   = kisi.YabanciDil;
         txtGuncelleUyruk.Text        = kisi.Uyruk;
         txtGuncelleDogumYeri.Text    = kisi.DogumYeri;
         txtGuncelleMedeniDurum.Text  = kisi.MedeniDurum;
         txtGuncelleAdresBilgisi.Text = kisi.Adres;
         txtGuncelleReferans.Text     = kisi.ReferansKisiler;
         Node nodeEgitim = new Node();
         nodeEgitim = kisi.EgitimDurumu.Head;
         while (nodeEgitim != null)
         {
             listEgitimBilgileri.Items.Add(((EgitimDurumuBilgileri)nodeEgitim.Data).MezunOlunanOkulAdi.ToString());
             nodeEgitim = nodeEgitim.Next;
         }
         Node nodeDeneyim = new Node();
         nodeDeneyim = kisi.IsTecrubeleri.Head;
         while (nodeDeneyim != null)
         {
             listIsBilgileri.Items.Add(((IsDeneyimi)nodeDeneyim.Data).Adi.ToString());
             nodeDeneyim = nodeDeneyim.Next;
         }
     }
 }
 private void Ziyaret(IkiliAramaAgacDugumu dugum)
 {
     dugumler += ((Kisi)dugum.veri).Ad + Environment.NewLine;
 }
        public bool Sil(long deger)
        {
            IkiliAramaAgacDugumu current = kok;
            IkiliAramaAgacDugumu parent  = kok;
            bool issol = true;

            //DÜĞÜMÜ BUL
            while (((Kisi)current.veri).TCKimlikNo != deger)
            {
                parent = current;
                if (deger < ((Kisi)current.veri).TCKimlikNo)
                {
                    issol   = true;
                    current = current.sol;
                }
                else
                {
                    issol   = false;
                    current = current.sag;
                }
                if (current == null)
                {
                    return(false);
                }
            }
            ((Kisi)current.veri).IsTecrubeleri = null;
            ((Kisi)current.veri).EgitimDurumu  = null;
            //DURUM 1: YAPRAK DÜĞÜM
            if (current.sol == null && current.sag == null)
            {
                if (current == kok)
                {
                    kok = null;
                }
                else if (issol)
                {
                    parent.sol = null;
                }
                else
                {
                    parent.sag = null;
                }
            }
            //DURUM 2: TEK ÇOCUKLU DÜĞÜM
            else if (current.sag == null)
            {
                if (current == kok)
                {
                    if (current == kok)
                    {
                        kok = current.sol;
                    }
                    else if (issol)
                    {
                        parent.sol = current.sol;
                    }
                    else
                    {
                        parent.sag = current.sol;
                    }
                }
            }
            else if (current.sol == null)
            {
                if (current == kok)
                {
                    kok = current.sag;
                }
                else if (issol)
                {
                    parent.sol = current.sag;
                }
                else
                {
                    parent.sag = current.sag;
                }
            }
            //DURUM 3: İKİ ÇOCUKLU DÜĞÜM
            else
            {
                IkiliAramaAgacDugumu successor = Successor(current);
                if (current == kok)
                {
                    kok = successor;
                }
                else if (issol)
                {
                    parent.sol = successor;
                }
                else
                {
                    parent.sag = successor;
                }
                successor.sol = current.sol;
            }
            return(true);
        }
示例#15
0
 public IkiliAramaAgacDugumu(object veri)
 {
     this.veri = veri;
     sol       = null;
     sag       = null;
 }
示例#16
0
        //**********************************************************************
        private void btnAra_Click_1(object sender, EventArgs e)
        {
            if (txtAra.Text == "")
            {
                MessageBox.Show("Arama yapmak için önce aranacak kişi ismini girin.");
            }
            else
            {
                //Eski arama bilgilerinde eski arana kişini eğitim bilgileri listbox'dan silindi.
                lbEgitim.Items.Clear();
                lbDeneyim.Items.Clear();

                //Ara methodu ile kişi ağacı üzerinde kişi adına göre arama işlemi gerçekleştirildi
                dugum = ka.Ara(txtAra.Text);
                //kişi ikili arama ağacında bulunamazsa null değer döner
                if (dugum == null)
                {
                    MessageBox.Show("Aradığınız kişi bulunamadı.");
                    txtAra.Text = "";
                }
                else
                {
                    //ikili arama ağacı üzerinde kişi bulunursa bilgileri gösterildi
                    k1                      = ((Kisi)dugum.veri);
                    txtGunAd.Text           = ((Kisi)dugum.veri).Ad;
                    txtGunAdres.Text        = ((Kisi)dugum.veri).Adres;
                    txtGunTelefon.Text      = ((Kisi)dugum.veri).Telefon;
                    txtGunEposta.Text       = ((Kisi)dugum.veri).Eposta;
                    txtGunReferans.Text     = ((Kisi)dugum.veri).Referans;
                    txtGunDogumYeri.Text    = ((Kisi)dugum.veri).DogumYeri;
                    txtGunIlgiAlanlari.Text = ((Kisi)dugum.veri).IlgiAlanlari;
                    dtGunDogumTarihi.Value  = (Convert.ToDateTime((k1.DogumTarihi)));

                    string ingilizce = ((Kisi)dugum.veri).YabanciDil.Find(stringX => stringX == cbGunIngilizce.Text);
                    string diger     = ((Kisi)dugum.veri).YabanciDil.Find(stringX => stringX == cbGunDiger.Text);
                    if (ingilizce == cbGunIngilizce.Text)
                    {
                        cbGunIngilizce.Checked = true;
                    }
                    else
                    {
                        cbGunIngilizce.Checked = false;
                    }
                    if (diger == cbGunDiger.Text)
                    {
                        cbGunDiger.Checked = true;
                    }
                    else
                    {
                        cbGunDiger.Checked = false;
                    }

                    MedeniDurum m = new MedeniDurum();
                    m = ((Kisi)dugum.veri).medeniDurum;
                    if (m == MedeniDurum.Evli)
                    {
                        rbGunEvli.Checked = true;
                    }
                    else if (m == MedeniDurum.Bekar)
                    {
                        rbGunBekar.Checked = true;
                    }
                    Uyruk u = new Uyruk();
                    u = ((Kisi)dugum.veri).uyruk;
                    if (u == Uyruk.TC)
                    {
                        rbGunUyrukTC.Checked = true;
                    }
                    else if (u == Uyruk.KKTC)
                    {
                        rbGunUyrukKKTC.Checked = true;
                    }
                    else if (u == Uyruk.Yabanci)
                    {
                        rbGunUyrukYabanci.Checked = true;
                    }

                    //Kişinin kayıtlı eğitim bilgileri eğitim bilgisi listesi null olana kadar listelendi
                    Node nodeEgitim = new Node();
                    nodeEgitim = ((Kisi)dugum.veri).EgitimBilgisi.Head;
                    while (nodeEgitim != null)
                    {
                        lbEgitim.Items.Add(((Egitim)nodeEgitim.Data).OkulAdi.ToString());
                        nodeEgitim = nodeEgitim.Next;
                    }

                    //Kişinin kayıtlı deneyim bilgileri deneyim bilgisi listesi null olana kadar listelendi
                    Node nodeDeneyim = new Node();
                    nodeDeneyim = ((Kisi)dugum.veri).Deneyimler.Head;
                    while (nodeDeneyim != null)
                    {
                        lbDeneyim.Items.Add(((IsDeneyimi)nodeDeneyim.Data).IsAd.ToString());
                        nodeDeneyim = nodeDeneyim.Next;
                    }
                }
            }
        }
 public IkiliAramaAgaci(IkiliAramaAgacDugumu kok)
 {
     this.kok = kok;
 }
        public void Ekle(Kisi deger)
        {
            Boolean isSol = true;
            //Yeni eklenecek düğümün parent'ını tutmak için kullanıldı
            IkiliAramaAgacDugumu tempParent = new IkiliAramaAgacDugumu();
            //Kökten itibaren ilerlemek için kullanıldı
            IkiliAramaAgacDugumu tempSearch = kok;

            while (tempSearch != null)
            {
                tempParent = tempSearch;
                //Deger zaten var. Eklemeden çık.
                if (deger.Ad == ((Kisi)tempSearch.veri).Ad)
                {
                    return;
                }
                else if (deger.Ad[0] < ((Kisi)tempSearch.veri).Ad[0]) //İlk harflerin ascii karşılığı küçükse ağaçta sola git
                {
                    tempSearch = tempSearch.sol;
                }
                else if (deger.Ad[0] == ((Kisi)tempSearch.veri).Ad[0]) //ilk harflerin eşit olması durumunda diğer harfler kontrol edilir
                {
                    int i = 1;
                    while (deger.Ad[i] != null)                           //adın harfleri bitene kadar ve farklı harfi bulana kadar ilerle
                    {
                        if (deger.Ad[i] == ((Kisi)tempSearch.veri).Ad[i]) //eşit olması durumunda diğer harfe bak
                        {
                            i++;
                            continue;
                        }
                        else if (deger.Ad[i] < ((Kisi)tempSearch.veri).Ad[i]) //küçük olması durumunda ağaçta sola ilerle ve çık
                        {
                            tempSearch = tempSearch.sol;
                            break;
                        }
                        else //büyük olması durumunda ağaçta sağa ilerle ve çık
                        {
                            isSol      = false;
                            tempSearch = tempSearch.sag;
                            break;
                        }
                    }
                }
                else //ilk harfin ascii karşılığı büyükse ağaçta sağa git
                {
                    tempSearch = tempSearch.sag;
                }
            }
            IkiliAramaAgacDugumu eklenecek = new IkiliAramaAgacDugumu(deger);

            //Yukarıda bulunan konuma yeni değeri ekle
            if (kok == null)
            {
                kok = eklenecek;
            }
            else if (deger.Ad[0] < ((Kisi)tempParent.veri).Ad[0])
            {
                tempParent.sol = eklenecek;
            }
            else if (deger.Ad[0] == ((Kisi)tempParent.veri).Ad[0] && isSol)
            {
                tempParent.sol = eklenecek;
            }
            else
            {
                tempParent.sag = eklenecek;
            }
        }
        public bool Sil(string deger)
        {
            if (kok == null) //ağaç boşsa silme işlemi yapılamaz
            {
                return(false);
            }
            else
            {
                IkiliAramaAgacDugumu current = kok;
                IkiliAramaAgacDugumu parent  = kok;
                bool issol = true;
                //Kişi adına göre silinecek düğümü bul
                while (((Kisi)current.veri).Ad != deger)
                {
                    parent = current;
                    if (deger[0] < ((Kisi)current.veri).Ad[0]) //silinecek kişi isminin ilk harfi düğümdeki kişinin ilk harfnden küçükse silinecek değer ağacın sol tarafındadır. sola git.
                    {
                        issol   = true;
                        current = current.sol;
                    }
                    else if (deger[0] == ((Kisi)current.veri).Ad[0])
                    {                            //silinecek kişi isminin ilk harfi düğümdeki kişinin ilk harfine eşitse diğer harfleri kontrol et
                        int i = 1;
                        while (deger[i] != null) //Farklı harfi bulana kadar dön
                        {
                            if (deger[i] == ((Kisi)current.veri).Ad[i])
                            {
                                i++;
                                continue;
                            }
                            else if (deger[i] < ((Kisi)current.veri).Ad[i])
                            {
                                current = current.sol;
                                break;
                            }
                            else
                            {
                                issol   = false;
                                current = current.sag;
                                break;
                            }
                        }
                    }
                    else//silinecek kişi isminin ilk harfi düğümdeki kişinin ilk harfinden büyükse silinecek değer ağacın sağ tarafındadır. sağa git.
                    {
                        issol   = false;
                        current = current.sag;
                    }
                    if (current == null)
                    {
                        return(false);
                    }
                }

                //Current(silinecek düğüm) bulunursa ilk olarak onun eğitim ve iş bilgilerini sil.
                ((Kisi)current.veri).EgitimBilgisi = null;
                ((Kisi)current.veri).Deneyimler    = null;
                //Daha sonra direk current düğümü sil.
                //Düğüm yaprak düğümse buraya gir
                if (current.sol == null && current.sag == null)
                {
                    if (current == kok)
                    {
                        kok = null;
                    }
                    else if (issol)
                    {
                        parent.sol = null;
                    }
                    else
                    {
                        parent.sag = null;
                    }
                }
                //Düğüm tek çocuklu düğümse buraya gir.
                else if (current.sag == null)
                {
                    if (current == kok)
                    {
                        kok = current.sol;
                    }
                    else if (issol)
                    {
                        parent.sol = current.sol;
                    }
                    else
                    {
                        parent.sag = current.sol;
                    }
                }
                else if (current.sol == null)
                {
                    if (current == kok)
                    {
                        kok = current.sag;
                    }
                    else if (issol)
                    {
                        parent.sol = current.sag;
                    }
                    else
                    {
                        parent.sag = current.sag;
                    }
                }
                //Düğüm iki çocuklu düğümse buraya gir.
                else
                {
                    IkiliAramaAgacDugumu successor = Successor(current);
                    if (current == kok)
                    {
                        kok = successor;
                    }
                    else if (issol)
                    {
                        parent.sol = successor;
                    }
                    else
                    {
                        parent.sag = successor;
                    }
                    successor.sol = current.sol;
                }
                return(true); //silme işlemi başarıyla gerçekleştiyse true dön
            }
        }