How to write an Applet to display a heap

  • Thread starter Thread starter DODGEVIPER13
  • Start date Start date
Click For Summary
SUMMARY

This discussion focuses on creating a Java applet to visually represent a heap data structure. The user has successfully implemented a basic MinHeap class but struggles with the applet's graphical representation. Key insights include the necessity of repainting the applet window upon adding or removing nodes from the heap. For beginners, Herbert Schildt's book on Java is recommended as a foundational resource for understanding applet development.

PREREQUISITES
  • Java programming knowledge, specifically Java applet development
  • Understanding of heap data structures, particularly MinHeap
  • Familiarity with Java's AWT and Swing libraries for GUI components
  • Basic concepts of object-oriented programming in Java
NEXT STEPS
  • Study Java applet lifecycle and repainting techniques
  • Learn about Java AWT and Swing for enhanced graphical user interfaces
  • Explore heap visualization techniques and algorithms
  • Read Herbert Schildt's "Java: The Complete Reference" for comprehensive applet guidance
USEFUL FOR

Java developers, computer science students, and anyone interested in visualizing data structures through applets will benefit from this discussion.

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();
}
}
 
Technology 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.
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 8 ·
Replies
8
Views
3K
Replies
5
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K
Replies
2
Views
2K
  • · Replies 2 ·
Replies
2
Views
3K