コード例 #1
0
        public void UrunGuncelle(Urun EskiUrun, Urun YeniUrun)
        {
            İkiliAramaAgacDugumu temp = new İkiliAramaAgacDugumu();

            foreach (IkiliAgac tree in Kategoriler)
            {
                if (tree.Isim == EskiUrun.Kategori)
                {
                    foreach (İkiliAramaAgacDugumu dugum in AltKategoriler)
                    {
                        if (EskiUrun.AltKategori == dugum.Adı)
                        {
                            temp = dugum;
                        }
                    }

                    List <Urun> GeciciListe = tree.AraImp(temp.Id).veri;
                    foreach (Urun urun1 in GeciciListe)
                    {
                        if (urun1.AltKategori == EskiUrun.AltKategori)
                        {// GÜNCElleme de yeni ıd atanmayacağı için direk listeye ulaşarak işlemleri burada gerçekleştiriyoruz.
                            int keeper;
                            keeper = urun1.Id;
                            GeciciListe.Remove(urun1);
                            YeniUrun.Id = keeper;
                            GeciciListe.Add(YeniUrun);
                            break;
                        }
                    }
                }
            }
        }
コード例 #2
0
        public Urun UrunAra(string seri, string kategori, string altkategori)
        {
            Urun tempurun             = new Urun();
            İkiliAramaAgacDugumu Node = new İkiliAramaAgacDugumu();

            foreach (IkiliAgac tree in Kategoriler)
            {
                if (tree.Isim == kategori)
                {
                    foreach (İkiliAramaAgacDugumu dugum in AltKategoriler)
                    {
                        if (altkategori == dugum.Adı)
                        {
                            Node = dugum;
                        }
                    }


                    foreach (Urun urun in tree.AraImp(Node.Id).veri)
                    {
                        if (seri == urun.SeriNo)
                        {
                            tempurun = urun;
                        }
                    }
                }
            }
            return(tempurun);
        }
コード例 #3
0
        public void UrunSil(Urun urun)
        {
            İkiliAramaAgacDugumu temp = new İkiliAramaAgacDugumu();
            List <Urun>          Gecici;

            foreach (IkiliAgac tree in Kategoriler)
            {
                if (tree.Isim == urun.Kategori)
                {
                    foreach (İkiliAramaAgacDugumu node in AltKategoriler)
                    {
                        if (node.Adı == urun.AltKategori)
                        {
                            temp = node;
                        }
                    }
                    Gecici = tree.AraImp(temp.Id).veri;
                    foreach (Urun urun1 in Gecici)
                    {
                        if (urun1.SeriNo == urun.SeriNo)
                        {
                            Gecici.Remove(urun1);
                            break;
                        }
                    }
                }
            }
        }
コード例 #4
0
        private void btnAltKategoriEkle_Click_1(object sender, EventArgs e)
        {
            IkiliAgac            temp     = m.KategoriBul(cmbKategoriSec.Text);
            İkiliAramaAgacDugumu tempnode = new İkiliAramaAgacDugumu();

            tempnode.Adı = txtYeniAltKategori.Text;
            temp.Ekle(tempnode);
            m.AltKategoriler.Add(tempnode);// BURADA AGAC DAN SONRA LİSTEMİZEDE EKLEME YAPIYORUZ..

            MessageBox.Show("Alt Kategori Eklenmiştir.");
        }
コード例 #5
0
 private void PreOrderInt(İkiliAramaAgacDugumu dugum)
 {
     if (dugum == null)
     {
         return;
     }
     Ziyaret(dugum);
     ListeOLustur(dugum);
     PreOrderInt(dugum.sol);
     PreOrderInt(dugum.sag);
 }
コード例 #6
0
        public int DugumSayisi(İkiliAramaAgacDugumu dugum)
        {
            int count = 0;

            if (dugum != null)
            {
                count  = 1;
                count += DugumSayisi(dugum.sol);
                count += DugumSayisi(dugum.sag);
            }
            return(count);
        }
コード例 #7
0
        public İkiliAramaAgacDugumu AltKategoriBul(string isim)
        {
            İkiliAramaAgacDugumu node = new İkiliAramaAgacDugumu();

            foreach (İkiliAramaAgacDugumu temp in AltKategoriler)
            {
                if (temp.Adı == isim)
                {
                    node = temp;
                }
            }
            return(node);
        }
コード例 #8
0
        public int YaprakSayisi(İkiliAramaAgacDugumu dugum)
        {
            int count = 0;

            if (dugum != null)
            {
                if ((dugum.sol == null) && (dugum.sag == null))
                {
                    count = 1;
                }
                else
                {
                    count = count + YaprakSayisi(dugum.sol) + YaprakSayisi(dugum.sag);
                }
            }
            return(count);
        }
コード例 #9
0
 private İkiliAramaAgacDugumu Ara(int Aranan, İkiliAramaAgacDugumu dugum)
 {
     if (dugum == null)
     {
         return(null);
     }
     if (Aranan < dugum.Id)
     {
         return(Ara(Aranan, dugum.sol));
     }
     else if (Aranan > dugum.Id)
     {
         return(Ara(Aranan, dugum.sag));
     }
     else
     {
         return(dugum);
     }
 }
コード例 #10
0
        private void btnListe4_Click_1(object sender, EventArgs e)
        {
            lboxUrunler.Items.Clear();
            if ((txtHeapAltKategori.Text == "" && txtAdet.Text == "") || txtHeapAltKategori.Text == "" || txtAdet.Text == "")
            {
                MessageBox.Show("Lütfen kategori adını ve adet  giriniz.");
            }
            else
            {
                İkiliAramaAgacDugumu temp = market.AltKategoriBul(txtHeapAltKategori.Text);
                if (temp.veri == null)
                {
                    MessageBox.Show("Ürün bulunamamıştır.");
                }
                else
                {
                    HeapTree.DiziOlustur(temp.veri.Count);
                    if (Convert.ToInt16(txtAdet.Text) > temp.veri.Count || Convert.ToInt16(txtAdet.Text) <= 0)
                    {
                        MessageBox.Show(" 0 ile " + temp.veri.Count + " arasında adet girebilirsiniz ");
                    }
                    else
                    {
                        foreach (Urun prototip in temp.veri)
                        {
                            HeapTree.Insert(prototip);
                        }
                        HeapDugumu Node;
                        string     str = "";

                        for (int i = 0; i < Convert.ToInt16((txtAdet.Text)); i++)
                        {
                            Node = HeapTree.RemoveMin();
                            SepetUrunleri.Add(Node);
                            //Sepet.Sepet.Add(Node.Data);
                            str = Node.Data.Marka + " " + Node.Data.Model + " " + Node.Data.SatisFiyati;
                            lboxUrunler.Items.Add(str);
                        }
                    }
                }
            }
        }
コード例 #11
0
        public void Ekle(İkiliAramaAgacDugumu deger)
        {
            İkiliAramaAgacDugumu tempparent = new İkiliAramaAgacDugumu();
            İkiliAramaAgacDugumu tempsearch = kok;

            deger.Id = AltKategoriIdSayac;
            while (tempsearch != null)
            {
                tempparent = tempsearch;
                if (deger.Id < tempsearch.Id)
                {
                    tempsearch = tempsearch.sol;
                }
                else if (deger.Id == tempsearch.Id)
                {
                    return;
                }
                else
                {
                    tempsearch = tempsearch.sag;
                }
            }

            if (kok == null)
            {
                kok = deger;
            }
            if (deger.Id < tempparent.Id)
            {
                tempparent.sol = deger;
            }
            else
            {
                tempparent.sag = deger;
            }


            AltKategoriIdSayac++;//Altkategori ıd sini otomatik vermesi için agaca idsayac ekledim her ekleme yaptığında 1 arttıracak
        }
コード例 #12
0
        public void UrunEkle(Urun urun)
        {
            İkiliAramaAgacDugumu node = new İkiliAramaAgacDugumu();


            foreach (IkiliAgac tree in Kategoriler)
            {
                if (tree.Isim == urun.Kategori)// İF'E KATEGORİYİ BULDUGUNDA GİRECEK!!
                {
                    foreach (İkiliAramaAgacDugumu temp in AltKategoriler)
                    {
                        if (temp.Adı == urun.AltKategori)
                        {
                            node = temp;
                            break;
                        }
                    }

                    // urunlere id atanacak
                    tree.AraImp(node.Id).UrunEkle(urun);
                    break;
                }
            }
        }
コード例 #13
0
 private void ListeOLustur(İkiliAramaAgacDugumu Dugum)
 {
     Dugumler.Add(Dugum);
 }
コード例 #14
0
 public IkiliAgac(İkiliAramaAgacDugumu dugum)
 {
     this.kok = dugum;
 }
コード例 #15
0
 private void Ziyaret(İkiliAramaAgacDugumu dugum)
 {
     dugumler += dugum.Adı + " ";
 }