View Full Version : درخت heap
donya1234
سه شنبه 11 خرداد 1395, 12:57 عصر
سلام کد برای حذف و جستجو در درخت heeap رو کسی داره؟ با استفاده از آرایه....
vahid-p
سه شنبه 11 خرداد 1395, 17:18 عصر
کد کلاس MaxHeap به زبان جاوا از لینک زیر میتونید بگیرید: (به همراه کلاس کمکی DSutil)
http://people.cs.vt.edu/shaffer/Book/JAVA/progs/MaxHeap/
در کلاس MaxHeap متد remove (حذف) وجود داره که بر اساس اندیس در آرایه است و نه مقدار اون گره، پس برای اینکه بتونیم بر اساس مقدار حذف کنیم، به جستجو نیاز داریم.
متد جستجو میتونه به صورت زیر باشه:
/**
* Find element position in a MaxHeap
* @param val
* @param pos
* @return Element postition in Heap array
*/
public int find(E val, int pos) {
if (Heap == null) {
return -1;
}
if (pos < Heap.length) {
if (Heap[pos].equals(val)) {
return pos;
} else if(Heap[pos].compareTo(val)>0){
int temp=find(val, leftchild(pos));
if(temp!=-1) return temp;
temp=find(val, rightchild(pos));
if(temp!=-1) return temp;
}
}
return -1;
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.