STRUKTUR DATA - PRAKTIKUM 5

Tugas Praktikum 5 Struktur Data Link Queue
LOGO AMIK BESAR
Nama : Yoga Ilham Rakasiwi
NIM : 16.MI.0010
Manajemen Informatika 2017/2018










A. STACK DENGAN SINGLE LINKED LIST
Single Linked List merupakan implementasi dari Stack. Keunggulannya adalah penggunaan alokasi memori yang dinamis sehingga menghindari pemborosan memori.
Dalam stack dengan linked list tidak ada istilah full, sebab biasanya program tidak menentukan jumlah elemen stack yang mungkin ada (kecuali jika sudah dibatasi oleh pembuatnya). Namun demikian sebenarnya stack ini pun memiliki batas kapasitas, yakni dibatasi oleh jumlah memori yang tersedia.
Operasi-operasi untuk Stack dengan Linked List
• IsEmpty
Fungsi memeriksa apakah stack yang adamasih kosong.
• Push
Fungsi memasukkan elemen baru ke dalam stack. Push di sini mirip dengan insert dalam single linked list biasa.
• Pop
Fungsi ini mengeluarkan elemen teratas dari stack.
• Clear
Fungsi ini akan menghapus stack yang ada.


B. QUEUE DENGAN DOUBLE LINKED LIST
Implementasi queue menggunakan linked list :
• Pengalokasian memori dinamis
• Menggunakan 2 buah pionter, qFront dan qRear, untuk menandai posisi depan dan belakang dari queue.
Operasi-operasi Queue dengan Double Linked List
• IsEmpty
Fungsi IsEmpty berguna untuk mengecek apakah queue masih kosong atau sudah berisi data. Hal ini dilakukan dengan mengecek apakah head masih menunjukkan pada Null atau tidak. Jika benar berarti queue masih kosong.
• IsFull
Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau masih bisa menampung data dengan cara mengecek apakah Jumlah Queue sudah sama dengan MAX_QUEUE atau belum. Jika benar maka queue sudah penuh.
• EnQueue
Fungsi EnQueuae berguna untuk memasukkan sebuah elemen ke dalam queue (head dan tail mula-mula meunjukkan ke NULL).
• DeQueue
Procedure DeQueue berguna untuk mengambil sebuah elemen dari queue. Hal ini dilakukan dengan cara menghapus satu simpul yang terletak paling depan (head).



Berikut contoh Programnya : 



Class Pertama :


class Queue
{
int data[];
int head = 0;
int tail = -1;
public Queue(int size)
{
data = new int[size];
}
public boolean isEmpty()
{
if(tail==-1)
{
return true;
}
else
{
return false;
}
}
public boolean isFull()
{
if(tail==data.length-1)
{
return true;
}
else
{
return false;
}
}


public int Dequeue()
{
int temp = data[head];
for(int i=head; i<=tail-1; i++)
{
data[i] = data[i+1];
}
tail--;
return temp;
}


public void Enqueue(int dataBaru)
{
if(isEmpty())
{
tail = head;
data[tail] = dataBaru;
}
else if(!isFull())
{
tail++;
data[tail] = dataBaru;
}
else if(isFull())
{
System.out.println("Antrian Sudah Penuh");
}
}


public void tampilkan()
{
if(!isEmpty())
{
int index = head;
while(index <= tail)
{
System.out.print(" "+ data[index] +" ");
index++;
}
System.out.println();
}
else
{
System.out.println();
}
}
}




Menggunakan NetBeans :








Class Kedua :

public class QueueLinkedList {
     public static void main(String[] args)
    {
        Queue queue = new Queue(10);
        queue.Enqueue(10);
        queue.Enqueue(9);
        queue.Enqueue(8);
        queue.Enqueue(7);
        queue.Enqueue(6);
        queue.Enqueue(5);
        queue.Enqueue(4);
        queue.Enqueue(3);
        queue.Enqueue(2);
        queue.Enqueue(1);
        queue.tampilkan();
        queue.Dequeue();
        queue.tampilkan();
        queue.Dequeue();
        queue.tampilkan();
        queue.Dequeue();
        queue.tampilkan();
        queue.Dequeue();
        queue.tampilkan();
        queue.Dequeue();
        queue.tampilkan();
        queue.Dequeue();
        queue.tampilkan();
        queue.Dequeue();
        queue.tampilkan();
        queue.Dequeue();
        queue.tampilkan();
        queue.Dequeue();
        queue.tampilkan();
        queue.Dequeue();
    }

}



Menggunakan NetBeans : 






Run : 

Komentar

Postingan populer dari blog ini

STRUKTUR DATA - PRAKTIKUM 4

PAPER UTS SORTING

STRUKTUR DATA - PRAKTIKUM 8