How to write an Applet to display a heap

  • Thread starter Thread starter DODGEVIPER13
  • Start date Start date
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
1 reply · 2K views
DODGEVIPER13
Messages
668
Reaction score
0
Ok so I have the heap part written but I don't understand how to do the Applet at all. I have figured out there is a special way an applet must be written and I wrote a simple applet that displayed a blue box just to test but I am wondering how I would get it to display a heap in the way it wants me too?


(Heap visualization) Write a Java applet that displays a heap graphically, as
shown in Figure 24.7. The applet let's you insert and delete an element from the
heap.

public class MinHeap<E extends Comparable>{
private java.util.ArrayList<E> list = new java.util.ArrayList<E>();

public MinHeap(){

}
public MinHeap(E[] objects){
for (int i = 0; i < objects.length; i++)
add(objects);
}
public void add(E newObject){
list.add(newObject);
int currentindex = list.size() - 1;

while (currentindex > 0){
int parentIndex = (currentindex-1)/2;
E p = list.get(parentIndex);

if (newObject.compareTo(p) >= 0){
break;
}
list.set(currentindex, p);
currentindex = parentIndex;

}
list.set(currentindex, newObject);
}
public E remove(){
if(list.size() == 0) return null;

E removedobject = list.get(0);
list.set(0, list.get(list.size() - 1));
list.remove(list.size() - 1);

int currentindex = 0;
while(currentindex < list.size()){
int left = 2*currentindex+1;
int right = 2*currentindex+2;

if(left >= list.size()) break;
int max = left;
if(right < list.size()){
if(list.get(max).compareTo(list.get(right)) < 0){
max=right;
}
}
if (list.get(currentindex).compareTo(list.get(max)) < 0){
E temp = list.get(max);
list.set(max, list.get(currentindex));
list.set(currentindex, temp);
currentindex = max;
}
else
break;
}
return removedobject;
}
public int getSize(){
return list.size();
}
}
 
Physics news on Phys.org
DODGEVIPER13 said:
Write a Java applet that displays a heap graphically, as
shown in Figure 24.7.
You haven't posted Figure 24.7.
DODGEVIPER13 said:
I don't understand how to do the Applet at all
Java applet designing is interesting, but often not easy. Basically when you add or remove a node from the stack, you will have to repaint/rebuild the window. Now, you have to find out how to do that. If you are new to Applets, try starting from Herbert Schildt's book on Java. The best way to learn applets, or anything in computer programming, is to try it out explicitly. Experience will be your best teacher.