Example #1
0
        public Eleman[] eleman_baslat(Eleman[] baslatilacak, int count)
        {
            #region EklemeBasarili

            baslatilacak = new Eleman[count];
            for (int i = 0; i < count; i++)
            {
                Eleman aktariciEleman = new Eleman();
                aktariciEleman.Deger       = -1;
                aktariciEleman.HomeAddress = i % modValue;
                aktariciEleman.LinkAddress = "x";

                baslatilacak[i] = aktariciEleman;
            }
            return(baslatilacak);

            #endregion
        }
Example #2
0
        public Eleman[] algorithm_EICH(Eleman[] baslangicDizi, Eleman[] elemanSunulacak, int degisenAlan)
        {
            int collision_count = 0;

            total_area = enyakin_Asal(modValue);
            if (degisenAlan != 0)
            {
                total_area = degisenAlan;
            }
            int primary_value  = modValue;
            int overflow_value = total_area - modValue;

            Eleman[] primary  = new Eleman[primary_value];
            Eleman[] overflow = new Eleman[overflow_value];

            primary  = eleman_baslat(primary, primary_value);
            overflow = eleman_baslat(overflow, overflow_value);

            for (int i = 0; i < baslangicDizi.Length; i++)
            {
                int probeEleman = 1;
                for (int k = 0; k < total_area; k++)
                {
                    int current_homeIndex = baslangicDizi[i].HomeAddress;
                    try
                    {
                        if (primary[current_homeIndex].Deger == -1 && current_homeIndex <= primary_value)//orada eleman yok ise
                        {
                            primary[current_homeIndex].Deger          = baslangicDizi[i].Deger;
                            primary[current_homeIndex].PropKaydedilen = probeEleman;
                            k = secondaryListCount;
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Lütfen mod değerini mod sonucu toplam eleman sayisinden fazla çıkacak şekilde girmeyiniz.");
                        this.Close();
                    }
                }
            }

            return(primary);
        }
Example #3
0
        public int probeBul(Eleman[] elemanDizisi, Eleman aranacakEleman)
        {
            int  counter     = 1;
            int  link_Degeri = aranacakEleman.HomeAddress;
            bool buldunmu    = false;
            int  i           = 0;

            while (!buldunmu && elemanDizisi.Length != i)
            {
                if (aranacakEleman.Deger == elemanDizisi[link_Degeri].Deger)
                {
                    buldunmu = true;
                }
                else
                {
                    link_Degeri = Convert.ToInt32(elemanDizisi[link_Degeri].LinkAddress);
                    counter++;
                }
            }

            return(counter);
        }
Example #4
0
        private Eleman[] item_producer(Eleman[] uretilecek, int elemanSayisi)
        {
            uretilecek = new Eleman[elemanSayisi];
            for (int i = 0; i < randomElemanSayisi; i++)
            {
                Eleman elemanEklenecek = new Eleman();
                try
                {
                    elemanEklenecek.Deger = temp.Next(min_value, max_value);
                }
                catch (Exception)
                {
                    MessageBox.Show("Max degerini min degerinden küçük girdiniz lütfen değerleri geçerli giriniz.");
                    this.Close();
                }


                elemanEklenecek.LinkAddress = "x";
                elemanEklenecek.HomeAddress = elemanEklenecek.Deger % modValue;

                uretilecek[i] = elemanEklenecek;
            }
            return(uretilecek);
        }
Example #5
0
        private void btnSort_Click(object sender, EventArgs e)
        {
            btnAra.Enabled          = true;
            txtAra.Enabled          = true;
            txtElemanSayisi.Enabled = true;
            txtMax.Enabled          = true;
            txtMin.Enabled          = true;
            txtMod.Enabled          = true;
            rischPerformans         = "";
            eischPerformans         = "";
            lischPerformans         = "";
            beischPerformans        = "";

            if (islem_say >= 0)
            {
                if (txtMin.Text != "" || txtMax.Text != "")
                {
                    try
                    {
                        if (txtMin.Text != "")
                        {
                            min_value = Convert.ToInt32(txtMin.Text.ToString());
                        }
                        if (txtMax.Text != "")
                        {
                            max_value = Convert.ToInt32(txtMax.Text.ToString());
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Lütfen Max ve Min değerlerini sayi olarak giriniz.");
                    }
                }
                if (txtMod.Text != "")
                {
                    try
                    {
                        modValue = Convert.ToInt32(txtMod.Text.ToString());
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Lütfen Mod değerini sayi olarak giriniz.");
                    }
                }
                if (txtElemanSayisi.Text != "")
                {
                    try
                    {
                        randomElemanSayisi = Convert.ToInt32(txtElemanSayisi.Text.ToString());
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Lütfen Eleman Sayisi değerini sayi olarak giriniz.");
                    }
                }
                else if (txtElemanSayisi.Text == "")
                {
                    randomElemanSayisi = temp.Next(15, 20);
                }
                packingFactor      = temp.Next(93, 96);
                secondaryListCount = (randomElemanSayisi * 100) / packingFactor + 1;



                lstView_Unsorted.Items.Clear();
                listViewSirali.Items.Clear();
                lstViewEISCH.Items.Clear();
                lstViewBEISCH.Items.Clear();
                lstViewRISCH.Items.Clear();
                lstViewEich.Items.Clear();
                elemanUretilen = new Eleman[randomElemanSayisi];
                elemanUretilen = item_producer(elemanUretilen, randomElemanSayisi);

                sirasiz   = lstView_Unsorted;
                lstLISCH  = listViewSirali;
                lstEISCH  = lstViewEISCH;
                lstRISCH  = lstViewRISCH;
                lstBEISCH = lstViewBEISCH;
                lstEICH   = lstViewEich;


                addItems_To_ListView_HomeAdres(sirasiz, randomElemanSayisi, elemanUretilen);

                Eleman[] eleman_to_sirali;

                switch (cmbChoose.Text)
                {
                case "LISCH":
                    eleman_to_sirali = new Eleman[secondaryListCount];
                    st_lish.Start();
                    eleman_to_sirali = algorithm_LISCH(elemanUretilen, eleman_to_sirali);
                    st_lish.Stop();
                    lischPerformans = st_lish.ElapsedMilliseconds.ToString();
                    addItems_To_ListView(lstLISCH, secondaryListCount, eleman_to_sirali);    //LISCH
                    break;

                case "RLISCH":
                    eleman_to_sirali = new Eleman[secondaryListCount];
                    st_rlish.Start();
                    eleman_to_sirali = algorithm_RLISCH(elemanUretilen, eleman_to_sirali);
                    st_rlish.Stop();
                    rischPerformans = st_rlish.ElapsedMilliseconds.ToString();
                    addItems_To_ListView(lstRISCH, secondaryListCount, eleman_to_sirali);    //RISCH
                    break;

                case "EISCH":
                    eleman_to_sirali = new Eleman[secondaryListCount];
                    st_eish.Start();
                    eleman_to_sirali = algorithm_EISCH(elemanUretilen, eleman_to_sirali);
                    st_eish.Stop();
                    eischPerformans = st_eish.ElapsedMilliseconds.ToString();
                    addItems_To_ListView(lstEISCH, secondaryListCount, eleman_to_sirali);    //EISCH
                    break;

                case "BEISCH":
                    eleman_to_sirali = new Eleman[secondaryListCount];
                    st_beish.Start();
                    eleman_to_sirali = algorithm_BEISCH(elemanUretilen, eleman_to_sirali);
                    st_beish.Stop();
                    beischPerformans = st_beish.ElapsedMilliseconds.ToString();
                    addItems_To_ListView(lstBEISCH, secondaryListCount, eleman_to_sirali);    //BEISCH
                    break;

                case "EICH":
                    eleman_to_sirali = new Eleman[secondaryListCount];
                    st_eish.Start();
                    eleman_to_sirali = algorithm_EISCH(elemanUretilen, eleman_to_sirali);
                    st_eish.Stop();
                    eischPerformans = st_eish.ElapsedMilliseconds.ToString();
                    addItems_To_ListView_EICH(lstEICH, secondaryListCount, eleman_to_sirali, modValue, enyakin_Asal(modValue) - modValue);
                    break;

                case "HEPSİ":
                    eleman_to_sirali = new Eleman[secondaryListCount];
                    st_lish.Start();
                    eleman_to_sirali = algorithm_LISCH(elemanUretilen, eleman_to_sirali);
                    st_lish.Stop();
                    lischPerformans = st_lish.Elapsed.ToString();
                    addItems_To_ListView(lstLISCH, secondaryListCount, eleman_to_sirali);    //LISCH

                    eleman_to_sirali = new Eleman[secondaryListCount];
                    st_eish.Start();
                    eleman_to_sirali = algorithm_EISCH(elemanUretilen, eleman_to_sirali);
                    st_eish.Stop();
                    eischPerformans = st_eish.Elapsed.ToString();
                    addItems_To_ListView(lstEISCH, secondaryListCount, eleman_to_sirali);    //EISCH

                    eleman_to_sirali = new Eleman[secondaryListCount];
                    st_beish.Start();
                    eleman_to_sirali = algorithm_BEISCH(elemanUretilen, eleman_to_sirali);
                    st_beish.Stop();
                    beischPerformans = st_beish.Elapsed.ToString();
                    addItems_To_ListView(lstBEISCH, secondaryListCount, eleman_to_sirali);    //BEISCH

                    eleman_to_sirali = new Eleman[secondaryListCount];
                    st_rlish.Start();
                    eleman_to_sirali = algorithm_RLISCH(elemanUretilen, eleman_to_sirali);
                    st_rlish.Stop();
                    rischPerformans = st_rlish.Elapsed.ToString();
                    addItems_To_ListView(lstRISCH, secondaryListCount, eleman_to_sirali);    //RISCH

                    eleman_to_sirali = new Eleman[secondaryListCount];
                    st_eish.Start();
                    eleman_to_sirali = algorithm_EISCH(elemanUretilen, eleman_to_sirali);
                    st_eish.Stop();
                    eischPerformans = st_eish.Elapsed.ToString();
                    addItems_To_ListView_EICH(lstEICH, secondaryListCount, eleman_to_sirali, modValue, enyakin_Asal(modValue) - modValue);

                    break;

                default:
                    break;
                }
            }



            lblPackingFactorValue.Text = packingFactor.ToString();


            islem_say++;
        }
Example #6
0
        public Eleman[] algorithm_BEISCH(Eleman[] baslangicDizi, Eleman[] elemanSunulacak)
        {
            #region EklemeBasarili
            elemanSunulacak = new Eleman[secondaryListCount];
            for (int i = 0; i < secondaryListCount; i++)
            {
                Eleman aktariciEleman = new Eleman();
                aktariciEleman.Deger       = -1;
                aktariciEleman.HomeAddress = i % modValue;
                aktariciEleman.LinkAddress = "x";

                elemanSunulacak[i] = aktariciEleman;
            }
            #endregion

            bool isBidirectional    = false;
            int  bidirectionalCount = 2;
            for (int i = 0; i < baslangicDizi.Length; i++)
            {
                int probeEleman = 1;
                for (int k = 0; k < secondaryListCount; k++)
                {
                    int current_homeIndex = baslangicDizi[i].HomeAddress;
                    try
                    {
                        if (elemanSunulacak[current_homeIndex].Deger == -1 && current_homeIndex <= secondaryListCount)//orada eleman yok ise
                        {
                            elemanSunulacak[current_homeIndex].Deger          = baslangicDizi[i].Deger;
                            elemanSunulacak[current_homeIndex].PropKaydedilen = probeEleman;
                            k = secondaryListCount;
                        }
                        else if (elemanSunulacak[current_homeIndex].Deger != -1)//orada eleman var ise
                        {
                            bool yerbulundu_mu = false;
                            probeEleman++;

                            int yer_index = elemanSunulacak.Length - 1;

                            int yer_index_ust = 0;



                            while (yerbulundu_mu == false)
                            {
                                if (elemanSunulacak[yer_index].Deger == -1)//yer bulduysan yerleştir.
                                {
                                    elemanSunulacak[yer_index].Deger          = baslangicDizi[i].Deger;
                                    elemanSunulacak[yer_index].PropKaydedilen = probeEleman;


                                    #region Yerleştirme_EISCH
                                    bool link_buldunmu   = false;
                                    int  counter_temizle = 0;
                                    int  gidilecek_link  = baslangicDizi[i].HomeAddress;
                                    while (!link_buldunmu)
                                    {
                                        if (elemanSunulacak[gidilecek_link].LinkAddress == "x")
                                        {
                                            elemanSunulacak[gidilecek_link].LinkAddress = yer_index.ToString();//Eğer 2. sıradaki eleman ise.
                                            link_buldunmu = true;
                                        }
                                        else
                                        {
                                            if (counter_temizle >= 3)//aslında zincirin en altına düşecek olan değerin link'ini temizlemiş oluyorum çünkü eğer bunu yapmazsam 2.collusion olduğundaki linklediği adres üzerinde kalıyor
                                            {
                                                string temp = elemanSunulacak[baslangicDizi[i].HomeAddress].LinkAddress;
                                                elemanSunulacak[Convert.ToInt32(elemanSunulacak[baslangicDizi[i].HomeAddress].LinkAddress)].LinkAddress = "x";
                                                elemanSunulacak[yer_index].LinkAddress = temp;
                                                elemanSunulacak[baslangicDizi[i].HomeAddress].LinkAddress = yer_index.ToString();
                                                link_buldunmu = true;
                                            }
                                            else
                                            {
                                                string temp = elemanSunulacak[baslangicDizi[i].HomeAddress].LinkAddress;
                                                elemanSunulacak[yer_index].LinkAddress = temp;
                                                elemanSunulacak[baslangicDizi[i].HomeAddress].LinkAddress = yer_index.ToString();
                                                link_buldunmu = true;
                                            }
                                        }
                                        counter_temizle++;
                                    }
                                    #endregion


                                    yerbulundu_mu = true;
                                    k             = secondaryListCount;
                                    bidirectionalCount++;
                                    if (bidirectionalCount % 2 == 1)
                                    {
                                        isBidirectional = true;
                                    }
                                    else if (bidirectionalCount % 2 == 0)
                                    {
                                        isBidirectional = false;
                                    }
                                }

                                else if (elemanSunulacak[yer_index].Deger != -1 && !isBidirectional)//yer bulamadıysan bidirectional'ın ilk aşaması olan alttan yer aramayı yap değiştirilen yeni yer için ilk koşul blogu çalışsın.
                                {
                                    yer_index--;
                                    probeEleman++;
                                }

                                else if (elemanSunulacak[yer_index].Deger != -1 && isBidirectional)////yer bulamadıysan bidirectional'ın ikinci aşaması olan üstten yer aramayı yap değiştirilen yeni yer için ilk koşul blogu çalışsın.
                                {
                                    yer_index = yer_index_ust - 1;
                                    yer_index++;
                                    yer_index_ust++;
                                    probeEleman++;
                                }
                            }
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Lütfen mod değerini mod sonucu toplam eleman sayisinden fazla çıkacak şekilde girmeyiniz.");
                        this.Close();
                    }
                }
            }

            return(elemanSunulacak);
        }
Example #7
0
        public Eleman[] algorithm_EISCH(Eleman[] baslangicDizi, Eleman[] elemanSunulacak)
        {
            #region EklemeBasarili
            elemanSunulacak = new Eleman[secondaryListCount];
            for (int i = 0; i < secondaryListCount; i++)
            {
                Eleman aktariciEleman = new Eleman();
                aktariciEleman.Deger       = -1;
                aktariciEleman.HomeAddress = i % modValue;
                aktariciEleman.LinkAddress = "x";

                elemanSunulacak[i] = aktariciEleman;
            }
            #endregion

            for (int i = 0; i < baslangicDizi.Length; i++)
            {
                int probeEleman = 1;
                for (int k = 0; k < secondaryListCount; k++)
                {
                    int current_homeIndex = baslangicDizi[i].HomeAddress;
                    try
                    {
                        if (elemanSunulacak[current_homeIndex].Deger == -1 && current_homeIndex <= secondaryListCount)//orada eleman yok ise
                        {
                            elemanSunulacak[current_homeIndex].Deger          = baslangicDizi[i].Deger;
                            elemanSunulacak[current_homeIndex].PropKaydedilen = probeEleman;
                            k = secondaryListCount;
                        }
                        else if (elemanSunulacak[current_homeIndex].Deger != -1)//orada eleman var ise
                        {
                            bool yerbulundu_mu = false;
                            probeEleman++;

                            int yer_index = elemanSunulacak.Length - 1;

                            while (yerbulundu_mu == false)
                            {
                                if (elemanSunulacak[yer_index].Deger == -1)
                                {
                                    elemanSunulacak[yer_index].Deger          = baslangicDizi[i].Deger;
                                    elemanSunulacak[yer_index].PropKaydedilen = probeEleman;
                                    #region Yerleştirme_EISCH
                                    bool link_buldunmu  = false;
                                    int  gidilecek_link = baslangicDizi[i].HomeAddress;
                                    while (!link_buldunmu)
                                    {
                                        if (elemanSunulacak[gidilecek_link].LinkAddress == "x")
                                        {
                                            elemanSunulacak[gidilecek_link].LinkAddress = yer_index.ToString();//Eğer 2. sıradaki eleman ise.
                                            link_buldunmu = true;
                                        }
                                        else
                                        {
                                            elemanSunulacak[yer_index].LinkAddress = elemanSunulacak[baslangicDizi[i].HomeAddress].LinkAddress;
                                            elemanSunulacak[baslangicDizi[i].HomeAddress].LinkAddress = yer_index.ToString();
                                            link_buldunmu = true;
                                        }
                                    }
                                    #endregion


                                    yerbulundu_mu = true;
                                    k             = secondaryListCount;
                                }
                                else if (elemanSunulacak[yer_index].Deger != -1)
                                {
                                    yer_index--;
                                    probeEleman++;
                                }
                            }
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Lütfen mod değerini mod sonucu toplam eleman sayisinden fazla çıkacak şekilde girmeyiniz.");
                        this.Close();
                    }
                }
            }

            return(elemanSunulacak);
        }
Example #8
0
        public Eleman[] algorithm_RLISCH(Eleman[] baslangicDizi, Eleman[] elemanSunulacak)
        {
            #region EklemeBasarili
            elemanSunulacak = new Eleman[secondaryListCount];
            for (int i = 0; i < secondaryListCount; i++)
            {
                Eleman aktariciEleman = new Eleman();
                aktariciEleman.Deger       = -1;
                aktariciEleman.HomeAddress = i % modValue;
                aktariciEleman.LinkAddress = "x";

                elemanSunulacak[i] = aktariciEleman;
            }
            #endregion
            int probeEleman = 1;
            for (int i = 0; i < baslangicDizi.Length; i++)                //Üretilen her bir elemanım için işlemleri yap.
            {
                for (int k = 0; k < secondaryListCount; k++)              //Yapacağın ana işlem yerleştirilecek koşul tablonun tamamını baz alıp yer aramak.
                {
                    int current_homeIndex = baslangicDizi[i].HomeAddress; //O andaki Home adresteki değerler için işlem yapılacak.
                    try
                    {
                        if (elemanSunulacak[current_homeIndex].Deger == -1)//orada eleman yok ise
                        {
                            elemanSunulacak[current_homeIndex].Deger          = baslangicDizi[i].Deger;
                            elemanSunulacak[current_homeIndex].PropKaydedilen = probeEleman;
                            k = secondaryListCount;                              //yerleştirilme yapıldı. Yerleştirilecek diğer elemanı al.
                        }//Home adres boş olabilir.
                        else if (elemanSunulacak[current_homeIndex].Deger != -1) //orada eleman var ise
                        {
                            bool yerbulundu_mu = false;
                            probeEleman++;
                            int yer_index = elemanSunulacak.Length - 1;

                            Random rnd        = new Random();
                            int    random_yer = rnd.Next(0, yer_index);
                            int    bos_adres  = -2;
                            while (yerbulundu_mu == false)
                            {
                                if (bos_adres != -2)
                                {
                                    random_yer = bos_adres;
                                    probeEleman++;
                                }
                                if (elemanSunulacak[random_yer].Deger == -1)
                                {
                                    elemanSunulacak[random_yer] = baslangicDizi[i];
                                    elemanSunulacak[random_yer].PropKaydedilen = probeEleman;

                                    #region Yerleştirme_RISCH
                                    bool link_buldunmu  = false;
                                    int  gidilecek_link = baslangicDizi[i].HomeAddress;
                                    while (!link_buldunmu)
                                    {
                                        if (elemanSunulacak[gidilecek_link].LinkAddress == "x")
                                        {
                                            elemanSunulacak[gidilecek_link].LinkAddress = random_yer.ToString();//Eğer 2. sıradaki eleman ise.
                                            link_buldunmu = true;
                                        }
                                        else
                                        {
                                            gidilecek_link = Convert.ToInt32(elemanSunulacak[gidilecek_link].LinkAddress);
                                        }
                                    }
                                    #endregion
                                    yerbulundu_mu = true;
                                    k             = secondaryListCount;
                                }
                                else
                                {
                                    int[] random_indisler = find_random_indis(elemanSunulacak);

                                    rnd        = new Random();
                                    random_yer = rnd.Next(0, random_indisler.Length);

                                    bos_adres = random_indisler[random_yer];
                                    probeEleman++;
                                }
                            }
                        }//Home adres dolu olabilir.
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Lütfen mod değerini mod sonucu toplam eleman sayisinden fazla çıkacak şekilde girmeyiniz.");
                        this.Close();
                    }
                }
            }

            return(elemanSunulacak);
        }
Example #9
0
        public Eleman[] algorithm_LISCH(Eleman[] baslangicDizi, Eleman[] elemanSunulacak)
        {
            #region EklemeBasarili
            elemanSunulacak = new Eleman[secondaryListCount];
            for (int i = 0; i < secondaryListCount; i++)
            {
                Eleman aktariciEleman = new Eleman();
                aktariciEleman.Deger       = -1;
                aktariciEleman.HomeAddress = i % modValue;
                aktariciEleman.LinkAddress = "x";

                elemanSunulacak[i] = aktariciEleman;
            }
            #endregion

            for (int i = 0; i < baslangicDizi.Length; i++)
            {
                int probeEleman = 1;//probe değerini daha yerleştirirken buluyoruz.
                for (int k = 0; k < secondaryListCount; k++)
                {
                    int current_homeIndex = baslangicDizi[i].HomeAddress;
                    try
                    {
                        if (elemanSunulacak[current_homeIndex].Deger == -1)//orada eleman yok ise
                        {
                            elemanSunulacak[current_homeIndex].Deger          = baslangicDizi[i].Deger;
                            elemanSunulacak[current_homeIndex].PropKaydedilen = probeEleman;
                            k = secondaryListCount;
                        }

                        else if (elemanSunulacak[current_homeIndex].Deger != -1)//orada eleman var ise
                        {
                            bool yerbulundu_mu = false;
                            probeEleman++;

                            int yer_index = elemanSunulacak.Length - 1;

                            while (yerbulundu_mu == false)
                            {
                                if (elemanSunulacak[yer_index].Deger == -1)
                                {
                                    elemanSunulacak[yer_index].Deger          = baslangicDizi[i].Deger;
                                    elemanSunulacak[yer_index].PropKaydedilen = probeEleman;

                                    #region Yerleştirme
                                    int link_adres_kontrol = baslangicDizi[i].HomeAddress;                               //belli home adresteki zincirin en altındaki verinin adres bilgisini aldım
                                                                                                                         //artık en son yeni bir eleman yerleştirildi ya 2 satır üstte , heh işte bu elemanı point edecek değer biraz önce adresini bulduğumuz eleman
                                    if (elemanSunulacak[link_adres_kontrol].LinkAddress == "x")                          //boş ise önce doldur
                                    {
                                        elemanSunulacak[current_homeIndex].LinkAddress    = Convert.ToString(yer_index); //yer_index olacak
                                        elemanSunulacak[current_homeIndex].PropKaydedilen = probeEleman;
                                    }
                                    else if (elemanSunulacak[link_adres_kontrol].LinkAddress != "x")
                                    {
                                        while (elemanSunulacak[link_adres_kontrol].LinkAddress != "x")
                                        {
                                            link_adres_kontrol = Convert.ToInt32(elemanSunulacak[link_adres_kontrol].LinkAddress);
                                            probeEleman++;
                                        }

                                        elemanSunulacak[link_adres_kontrol].LinkAddress    = Convert.ToString(yer_index);
                                        elemanSunulacak[link_adres_kontrol].PropKaydedilen = probeEleman;
                                    }
                                    #endregion

                                    yerbulundu_mu = true;
                                    k             = secondaryListCount;
                                }
                                else if (elemanSunulacak[yer_index].Deger != -1)
                                {
                                    yer_index--;
                                }
                            }
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Lütfen mod değerini mod sonucu toplam eleman sayisinden fazla çıkacak şekilde girmeyiniz.");
                        this.Close();
                    }
                }
            }

            return(elemanSunulacak);
        }