Jumat, 26 April 2013

QUEUE (Struktur Data)


package coba;
import java.util.Scanner;

class queue{
    int data[]=new int[5];
    int head;
    int tail;
}
   
public class Coba {
    static queue s = new queue();
   
    static void create(){
        s.head=s.tail=-1;
    }
    static int isEmpty(){
        if(s.tail==-1){
            return 1;
        }else{
            return 0;
        }
    }
    static int isFull(){
        if(s.tail==4){
            return 1;
        }else{
            return 0;
        }
    }
    static void Enqueue(int isi){
        if(isEmpty()==1){
            s.head=s.tail=0;
            s.data[s.tail]=isi;
        }else if(isFull()==0){
            s.tail++;
            s.data[s.tail]=isi;
        }
    }
    static int Dequeue(){
        int e=s.data[s.head];
        for(int i=s.head; i<s.tail; i++){
            s.data[i]=s.data[i+1];
        }
        s.tail--;
        return e;
    }
    static void print(){
        if(isEmpty()==0){
            for(int j=s.head; j<=s.tail; j++){
                System.out.println(s.data[j]+" ");
            }
        }else{
            System.out.println("kosong");
        }
    }
    static int total(){
        int t=0;
        for(int i=s.head; i<=s.tail; i++){
            t += s.data[i];
        }
        return t;
    }
    static int max(){
        int m = s.data[s.head];
        for(int i=s.head; i<=s.tail; i++){
            if(s.data[i] > m){
                m=s.data[i];
            }
        }
        return m;
    }
    static int min(){
        int m = s.data[s.head];
        for(int i=s.head; i<=s.tail; i++){
            if(s.data[i] < m){
                m=s.data[i];
            }
        }
        return m;
    }
    static double rata(){
        double r;
        double t=0;
        for(int i=s.head; i<=s.tail; i++){
            t += s.data[i];
        }
        r = t / (s.tail+1);
        return r;
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int pil=0;
        Coba q = new Coba();
        q.create();
        do{
            System.out.println("Menu");
            System.out.println("1. Enqueue");
            System.out.println("2. Dequeue");
            System.out.println("3. Tampilkan");
            System.out.println("4. Keluar");
            System.out.print("\tPilihan Anda : ");
            pil = in.nextInt();
            switch (pil){
                case 1 : System.out.print("\tMasukkan Nilai : ");
                        int x = in.nextInt();
                        q.Enqueue(x);
                        System.out.println("\tTotal = "+q.total());
                        System.out.println("\tTerbesar = "+q.max());
                        System.out.println("\tTerkecil = "+q.min());
                        System.out.println("\tRata-rata = "+q.rata());
                        break;
                case 2 : q.Dequeue();
                        break;
                case 3 : q.print();
                        break;
            }
        }while(pil != 4);
    }
}

Tidak ada komentar:

Posting Komentar