Rabu, 24 Maret 2010

Queue Class Example

package queue;

public class Queue {
    private boolean full, empty;
    private int max_item = 100;
    private int item [max_item];
    private int head, tail;
  
    public Queue(){
        full=false;
        empty=true;
        head=0;
        tail=0;              
    }
    public boolean isFull(){
        return(full);
    }
    public boolean isEmpty(){
        return(empty);
    }
    public void insert (int data){
        if (isFull()){
            if (head==max_item){
                item[head++]=data;
                empty=false;
            }
            if (tail==0 && head==max_item){
                full=true;
            }
        }
        return;
    }
    private void shiftData(){
        for (int i=0; i
            item[i]=item[i+tail];
        }
        head = head-tail+1;
        tail=0;
        return;
    }
    public int remove(){
        int x;
        if (isEmpty()){
            x=item(tail++);
            full=false;
            if (head==tail){
                empty=true;
            }
        }
        else{
            System.out.print("Queue is empty!");
        }
        return(x);      
    }
}

Stack Class Example

package stack;

public class Stack {
    private boolean empty,full;
    private int pos;
    private int max_data=100;
    private int item [max_data];
  
    public Stack(){
        full=false;
        empty=true;
        pos=0;
    }
    public boolean isFull(){
        return(full);
    }
    public boolean isEmpty(){
        return(empty);
    }
    public void push(int data){
        if (!isFull()){
            item [pos++] = data;
            empty = false;
            if (pos==max_data){
            full=true;
            }
        }
        else {
            System.out.print("Stack is Full");
        }
        return;
    }
    public int pop(){
        int x;
        if (!isEmpty()){
            x = item [--pos];
            if(pos==0){
            empty=true;
            }
        }
        else{
            System.out.print("Stack is Empty");
        }
        return(x);
    }
  
}

Java Double Linked List

Main Class

package rizal;


public class Main {


    public static void main(String[] args)
        int x =5;
        System.out.println(x);
    }
}


DoubleList Class

package rizal;


public class DoubleList {
    int awal, akhir;
    int jnode;
    int max_node=100;
    Node item[]=new Node[max_node];


    public DoubleList(){
        jnode=0;
        awal=-1;
        akhir=-1;
        for(int i=0;i
            item[i]=new Node(0);
        }
    }
    public int getJNode(){
        return(jnode);
    }
    public void insert (int data, int pos){
        if(jnode==0){
            awal=0;
            akhir=0;
            item[0].setData(data);
            jnode++;
        }
        else{
            if (jnode!=max_node){
                int p=FindEmpty();
                if (pos==0){
                item[p].setData(data);
                item[p].setNext(awal);
                item[awal].setPrev(p);
                awal=p;
                jnode++;
                }
                else if(pos>=jnode){
                    item[p].setData(data);
                    item[p].setPrev(akhir);
                    item[akhir].setNext(p);
                    akhir=p;
                    jnode++;
                }
                else {
                    if (pos>jnode/2){
                        int i =akhir;
                        for (int j=0;j
                            i=item[i].getPrev();
                        }
                        item[p].setData(data);
                        item[p].setNext(i);
                        item[p].setPrev(item[i].getPrev());
                        item[item[i].getPrev()].setNext(p);
                        item[i].setPrev(p);
                        jnode++;
                    }
                    else {
                        int i=awal;
                        for(int j=0;j
                            i=item[i].getNext();
                        }
                        item[p].setData(data);
                        item[p].setPrev(i);
                        item[p].setNext(item[i].getNext());
                        item[item[i].getNext()].setPrev(p);
                        item[i].setNext(p);
                        jnode++;
                    }
                }
            }
            else {
                System.out.println("Double List is Full!!!!");
            }
        }


        return;
    }
    private int FindEmpty () {
        int i;


        for (i=0;i
            if (i!=akhir && item[i].getNext()==-1){
                return(i);
            }  
        }
        return(-1);
    }
}



Node Class

package rizal;


public class Node {
    private int prev, data, next;


    public Node (int n){
        data = n;
        prev = -1;
        next = -1;
    }


    public void setData(int n){
        data = n;
    }
    public int getData(){
        return (data);
    }
    public void setPrev(int n){
        prev = n;
    }
    public void setNext(int n){
        next = n;
    }
    public int getPrev(){
        return (prev);
    }
    public int getNext(){
        return (next);
    }
}