The ProgrammersTalk Community
Forum Register Search Today's Posts Mark Forums Read
Register

Go Back   The ProgrammersTalk Community > General Programming > Java


Welcome to the The ProgrammersTalk Community forums.

You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact contact us.
Tags: , , , , , , ,

Reply
 
LinkBack (1) Thread Tools    Display Modes   
  1 links from elsewhere to this Post. Click to view. #1 (permalink)  
Old 08-19-2007, 07:06 PM
HelloWorld's Avatar
HelloWorld HelloWorld is offline
Programming Expert
Awards Showcase
Quality Tutorial 
Total Awards: 1
Join Date: Jun 2007
Location: In front of computer...
Posts: 1,111
iTrader: (0)
HelloWorld will become famous soon enoughHelloWorld will become famous soon enoughHelloWorld will become famous soon enough
Icon11 Tutorial: Java BinaryHeap Implementation Using Vector

Below is a BinaryHeap implementation using Vector

I hope you don't get disappointed because I think BinaryHeap is the easiest implementation over all of the Tree Data Structure that I've seen so far lol... Note the followings are the characteristics of BinaryHeap:

1. Parent is always larger than the child
2. Child is always smaller than the parent

And the good news is that you don't have to worry to which sides of the parent's node should you put the children at, as long as both of them are smaller than the parent.

Just as usual, it is your own responsibility by using the code that I've written. It's been tested and worked at JDK 6

PHP Code:
import java.util.Vector;

public class MyBinaryHeap {
    
protected Vector v = new Vector();
    
private int largest// index of the largest
    
    
public void insert(Object in) {
        
v.add(in);
        
BUILD_MAX_HEAP();
    }
    
    
public void remove() {
        
v.remove(v.size()-1);
    }
    
    
public void MAX_HEAPIFY(int index) {
        if (
leftChild(index) < v.size() && Double.parseDouble(v.get(leftChild(index)).toString()) > Double.parseDouble(v.get(index).toString())) {
            
largest leftChild(index);
        } else {
            
largest index;
        }
        if (
rightChild(index) < v.size() && Double.parseDouble(v.get(leftChild(index)).toString()) > Double.parseDouble(v.get(index).toString())) {
            
largest rightChild(index);
        }
        if (
largest != index) {
            
swap(indexlargest);
            
MAX_HEAPIFY(largest);
        }
    }
    
    
public void BUILD_MAX_HEAP() {
        for (
int i v.size()/2>= 0i--) {
            
MAX_HEAPIFY(i);
        }
    }
    
    
public void swap(int indexint largest) {
        
Object temp = new Object();
        
temp v.get(index);
        
v.set(indexv.get(largest));
        
v.set(largesttemp);
    }
    
    
public int parent(int i) {
        return 
i/2;
    }
    
    
public int leftChild(int i) {
        return 
2*1;
    }
    
    
public int rightChild(int i) {
        return 
2*2;
    }


__________________
PHP Code:
System.out.println("Hello World!"); 

Digg this Post! Del.Icio.Us this Post! Technorati this Post! Furl this Post! Mister Wong this Post! Newsvine this Post! Spurl this Post! Reddit this Post! Netscape this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

   Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

LinkBacks (?)
LinkBack to this Thread: http://www.programmerstalk.net/thread1090.html
Posted By For Type Date
ProgrammersTalk's bookmarks on del.icio.us This thread Refback 08-23-2007 09:19 AM


All times are GMT -7. The time now is 08:14 PM. Powered by vBulletin
Copyright © 2000 - 2007, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO © 2007 ProgrammersTalk Sedo - Buy and Sell Domain Names and Websites project info: programmerstalk.net Statistics for project programmerstalk.net etracker® web controlling instead of log file analysis


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50