示例#1
0
        public void MoveToUp(int index)
        {
            int        parent = (index - 1) / 2;
            HeapDugumu bottom = heapBasvuru[index];

            //Yeni eklenen otel 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(((oteller)heapBasvuru[parent].Deger).Ad[0]) < Convert.ToInt32(((oteller)bottom.Deger).Ad[0]))
            {
                heapBasvuru[index] = heapBasvuru[parent];
                index  = parent;
                parent = (parent - 1) / 2;
            }
            heapBasvuru[index] = bottom;
        }
示例#2
0
        public bool Insert(oteller 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);
        }