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; }
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); }