Senin, 20 Mei 2013

Program Queue_FIFO

 Class Link

/*
 * Linked List Berbasis Queue.
 *
 * @author  : Fauzan Azhmi Siregar
 * @id      : G1A011022
 * @class   : A
 */

class item
{
    public char data;
    public item next;
    public item prev;
    public item(char id)
    {
        data = id;
    }
    public void displayLink()
    {
        System.out.print("[" + data + "] ");
    }
}
class QueueLink
{
    private item front;
    private item rear;
    public QueueLink()
    {
        front = rear = null;
    }
    public boolean isEmpty()
    {
        return (front==null);
    }
    public void enqueue(char id)
    {
        item newitem = new item(id);
        if (front == null)
        {
            front = rear = newitem;
        }
        else
        {
            rear.next = newitem;   
            newitem.prev = rear;   
            rear = newitem;    
            newitem.next = null;
        }
    }
    public item dequeue()
    {   item temp = null;
        if (front == null) 
            System.out.print("Empty!");
        else if (front == rear)    
        {
            temp = front;
            front = rear = null;
        }
        else   
        {
            temp = front;
            front = front.next;
            front.prev = null;
        }
        return temp;
    }
    public void display()
    {
        item current = front;
        if (current == null)
            System.out.print("[ ]");
        else
            while(current != null)
            {
                current.displayLink();
                current = current.next;
            }
        System.out.print("");
    }
}



Class Main

import java.util.*;
/*
 * Linked List Berbasis Queue.
 *
 * @author  : Fauzan Azhmi Siregar
 * @id      : G1A011022
 * @class   : A
 */

class Queue_FIFO
{
    public static void main(String[] args)
    {
        System.out.println("\t_Queue_First_In_First_Out_\n");
        char p;
        Scanner in =new Scanner(System.in);
        QueueLink theQueue = new QueueLink();
        do
        {
            System.out.print("Input Data : ");
            char Masuk = in.nextLine().charAt(0);
            theQueue.enqueue(Masuk);
            System.out.print("Continue to Input Data (y/n) : ");
            p = in.nextLine().charAt(0);
        }
        while (p=='y' );
        System.out.print("\nData Queue : ");
        theQueue.display();
        System.out.println("");
        System.out.println("\n\n\t_Data First In First Out (FIFO)_\n");   
        System.out.print("Data In\t: "); 
        theQueue.display();
        System.out.print("  ==>  ");
        while( !theQueue.isEmpty() )
        {
            item aLink = theQueue.dequeue();
            aLink.displayLink();
            System.out.println("Out.\n");
            System.out.print("Last Data\t: ");
            theQueue.display();
            System.out.print("  ==>  ");
        }
        System.out.println(" Empty! ");
    }
}

Tidak ada komentar:

Posting Komentar