public bool Insert(Kisi kisi)
        {
            if (currentSize == maxSize)
            {
                return(false);
            }
            HeapDugumu newHeapDugumu = new HeapDugumu(kisi);

            heapIlanBasvurusu[currentSize] = newHeapDugumu;
            MoveToUp(currentSize++);
            return(true);
        }
        public void MoveToUp(int index)
        {
            int        parent = (index - 1) / 2;
            HeapDugumu bottom = heapIlanBasvurusu[index];

            while (index > 0 && (((Kisi)heapIlanBasvurusu[parent].Deger).TCKimlikNo) < ((Kisi)bottom.Deger).TCKimlikNo)
            {
                heapIlanBasvurusu[index] = heapIlanBasvurusu[parent];
                index  = parent;
                parent = (parent - 1) / 2;
            }
            heapIlanBasvurusu[index] = bottom;
        }
예제 #3
0
        public void MoveToUp(int index)
        {
            int        parent = (index - 1) / 2;
            HeapDugumu bottom = heapBasvuru[index];

            //Yeni eklenen kişi adının (ilk harfinin) ascii karşılığı Heap'de o an bulunduğu parentının adının(ilk harfinin) ascii karşılığından büyük olduğu sürece yer değiştirme işlemi gerçekleştirildi
            while (index > 0 && Convert.ToInt32(((Kisi)heapBasvuru[parent].Deger).Ad[0]) < Convert.ToInt32(((Kisi)bottom.Deger).Ad[0]))
            {
                heapBasvuru[index] = heapBasvuru[parent];
                index  = parent;
                parent = (parent - 1) / 2;
            }
            heapBasvuru[index] = bottom;
        }
예제 #4
0
        public bool Insert(Kisi deger)
        {
            //Heap dolu ise ekleme işlemi gerçekleştirilmedi
            if (gecerliBoyut == maksBoyut)
            {
                return(false);
            }
            //Başvuru yapan kişi nesnesi heap'in son boş düğümüne eklendi
            HeapDugumu yeniHeapDugumu = new HeapDugumu(deger);

            heapBasvuru[gecerliBoyut] = yeniHeapDugumu;
            //Son düğüme eklenen Kişi nesnesi ad'a göre heap'de yerini alması için MoveToUp() methodu kullanıldı.
            MoveToUp(gecerliBoyut++);
            return(true);
        }
예제 #5
0
 private void btnIseAlinanAdayiBul_Click(object sender, EventArgs e)
 {
     if (lbIlanlar.SelectedItem == null)
     {
         MessageBox.Show("Önce ilanı seçin.");
     }
     else
     {
         Node       temp      = IlanBul();//Seçilen ilana uygun aday(uygunluk puanı, not ortalaması ve ingilizce bilgisine göre karar veriliyor) arandı. Bulunursa adı gösterildi.
         HeapDugumu uygunAday = ((Ilan)temp.Data).heapBasvuru.UygunAdayBul();
         if (uygunAday == null)
         {
             MessageBox.Show("Henüz işe uygun aday başvurmadı");
         }
         else
         {
             txtIseAlinanAday.Text = ((Kisi)uygunAday.Deger).Ad;
         }
     }
 }
예제 #6
0
 private void btnIseal_Click(object sender, EventArgs e)
 {
     if (lbIlanlar.SelectedItem == null)
     {
         MessageBox.Show("Bir ilan seçiniz");
     }
     else
     {
         IlanBilgileri ilan = new IlanBilgileri();
         ilanNumarasi = lbIlanlar.SelectedIndex + 1;
         ilan         = hashChainTable.GetIlan(ilanNumarasi);
         HeapDugumu uygunAday = ((IlanBilgileri)ilan).heapIlanBasvurusu.UygunAdayBul();
         if (uygunAday == null)
         {
             MessageBox.Show("İşe Uygun Aday Yok");
         }
         else
         {
             txtIseAlinanEleman.Text = ((Kisi)uygunAday.Deger).Ad;
         }
     }
 }