How to display a Heap using Applet

  • Thread starter DODGEVIPER13
  • Start date
In summary, the task is to create a Java applet that displays a heap graphically, with the ability to insert and delete elements. The code for the heap itself is provided, but the challenge is to understand how to incorporate it into an applet. The attempted solution shows a basic applet that displays a blue box, but the question is how to modify it to display the heap in the desired way.
  • #1
DODGEVIPER13
672
0

Homework Statement


(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.


Homework Equations


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?

The Attempt at a Solution



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
  • #2
//Applet codeimport java.applet.Applet;public class Heap extends Applet{public void paint(Graphics g){g.setColor(Color.BLUE);g.fillRect(20, 20, 100, 50);}}
 

Related to How to display a Heap using Applet

What is a Heap?

A Heap is a data structure that is used to store and retrieve data in a particular order. It is a type of binary tree where the parent node is always larger or smaller than its child nodes, depending on whether it is a max heap or a min heap.

How do I create a Heap?

To create a Heap, you can use an array or a linked list. Simply insert the elements into the Heap and then use the heapify process to ensure that the heap property is maintained.

What is the heapify process?

The heapify process is used to maintain the heap property in a Heap. It involves comparing the parent node with its child nodes and swapping them if necessary. This process continues until the entire Heap is in the correct order.

What is the difference between a max heap and a min heap?

In a max heap, the parent node is always larger than its child nodes, while in a min heap, the parent node is always smaller than its child nodes. This affects the order in which the elements are stored and retrieved from the Heap.

How can I display a Heap using Applet?

To display a Heap using Applet, you can use the draw method to visualize the Heap as a tree. You can also use color-coding or labels to differentiate between the parent and child nodes. Additionally, you can use animation to show the heapify process in action.

Similar threads

Replies
1
Views
2K
Replies
6
Views
3K
Replies
7
Views
2K
Replies
1
Views
9K
Replies
5
Views
2K
Replies
1
Views
2K
Replies
1
Views
6K
Back
Top