Contoh Percobaan dan Latihan Program C++(Queue)
Percobaan 1 : Implementasi antrian dengan array
Berikut Contoh Program nya
#include <stdio.h>
#define MAX 10
typedef struct {
int Item[MAX]; int Front; int Rear;
int Count;
} Queue;
// Inisialisasi antrian void
Inisialisasi(Queue *q)
{
q->Front = q->Rear = -1;
q->Count = 0;
}
// Prosedur untuk menyisipkan data pada antrian
void Tambah(Queue *q, int item){
if (q->Rear == MAX-1){
printf ("\nAntrian Penuh");
return ;
}
q->Rear++;
q->Item[q->Rear] = item; q->Count++;
if (q->Front == -1) q->Front = 0;
}
// Prosedur untuk menghapus data dari antrian
int Hapus(Queue *q){
int data ;
if (q->Front == -1){
printf ("\nAntrian Kosong");
return NULL;
}
data = q->Item[q->Front]; q->Count--;
if (q->Front == q->Rear)
q->Front = q->Rear = -1;
else
q->Front++;
return data;
}
void Tampil(Queue *q){
for(int i=0; i<q->Count;
i++) printf("\nData : %d", q->Item[i]);
}
void main(){
Queue q;
int data;
Inisialisasi(&q);
Tambah(&q,11);
Tambah(&q,12);
Tambah(&q,13);
Tambah(&q,14);
Tambah(&q,15);
Tambah(&q,16);
Tambah(&q,17);
Tambah(&q,18);
Tambah(&q,19);
Tambah(&q,20);
Tambah(&q,21);
Tampil(&q);
data = Hapus(&q);
printf("\nHapus Item = %d ", data);
data = Hapus(&q);
printf("\nHapus Item = %d ", data);
data = Hapus(&q);
printf("\n Hapus Item = %d ", data); Tampil(&q);
}
Berikut Output Program nya:
Percobaan 2: Implementasi Circular Queue.
Berikut Contoh Program nya:
#include <stdio.h>
#define MAX 10
typedef struct
{
int Item[MAX];
int Front;
int Rear;
int Count;
}
Queue;
// Inisialisasi antrian
void Inisialisasi(Queue
*q)
{
q->Front = q->Rear =
-1;
q->Count = 0;
}
// Prosedur untuk
menyisipkan data pada antrian
void Tambah(Queue *q,
int item)
{
if ((q->Rear
== MAX-1 && q->Front == 0)
|| (q->Rear + 1 ==
q->Front))
{
printf ("\nAntrian Penuh");
return ;
}
if (q->Rear == MAX - 1)
q->Rear = 0;
else
q->Rear++;
q->Item[q->Rear]
= item;
q->Count++;
if (q->Front
== -1) q->Front = 0;
}
// Prosedur untuk
menghapus data dari antrian
int Hapus(Queue *q)
{
int data ;
if (q->Front
== -1)
{
}
else
{
printf ("\nAntrian Kosong");
return NULL;
data = q->Item[q->Front];
q->Count--;
if (q->Front
== q->Rear)
q->Front = q->Rear
= -1;
else
{
if (q->Front
== MAX-1)
q->Front = 0;
else
{
}
}
}
q->Front++;
return
data;
}
void Tampil(Queue *q)
{
for(int i=0; i<q->Count;
i++)
printf("\nData : %d",
q->Item[i]);
}
int main()
{
Queue q; int
data;
Inisialisasi(&q);
Tambah(&q,11);
Tambah(&q,12);
Tambah(&q,13);
Tambah(&q,14);
Tambah(&q,15);
Tambah(&q,16);
Tambah(&q,17);
Tambah(&q,18);
Tambah(&q,19);
Tambah(&q,20);
Tambah(&q,21);
Tampil(&q);
data = Hapus(&q);
printf("\nHapus Item = %d ",
data);
data = Hapus(&q);
printf("\nHapus Item = %d ",
data);
data = Hapus(&q);
printf("\nHapus Item = %d ",
data);
Tampil(&q);
}
Berikut Output Program nya:
Percobaan 3: Implementasi Antrian Dengan Linked List.
Berikut Contoh Program nya:
#include<stdio.h>
#include<malloc.h>
typedef struct node{
int Item;
struct node
*link;
}Node;
typedef struct {
Node *Front;
Node *Rear;
}Queue;
// Prosedur untuk menyisipkan data pada antrian
void Tambah(Queue *Q, int y)
{
Node *ptr;
ptr=(Node *) malloc(sizeof(Node));
ptr->Item=y;
ptr->link=NULL;
if(Q->Front ==NULL)
{
Q->Front
= Q->Rear = ptr;
}
else
{
Q->Rear->link=ptr;
Q->Rear=ptr;
}
}
// Prosedur untuk menghapus data dari antrian
int Hapus(Queue *Q)
{
int num;
if(Q->Front==NULL)
{
printf("\n\n\t\tAntrian
Kosong\n\n");
return(0);
}
else
{
num=Q->Front->Item;
Q->Front =
Q->Front->link;
if(Q->Front == NULL)
Q->Rear
= NULL;
//printf("\nNilai yang dihapus : %d \n",num);
return(num);
}
}
void Tampil(Node *N)
{
printf ("\nFront -> ");
while (N != NULL)
{
if(N->link == NULL)
{
printf("%5d",
N->Item);
printf(" <- Rear");
}
else
printf("%5d", N->Item);
N = N->link;
}
}
int Count(Node *N)
{
int c=0;
while (N != NULL)
{
N = N->link;
c++;
}
return c;
}
int main()
{
int item;
Queue Q;
Q.Front = Q.Rear = NULL;
Tambah(&Q, 11);
Tambah(&Q, 12);
Tambah(&Q, 13);
Tambah(&Q, 14);
Tambah(&Q, 15);
Tambah(&Q, 16);
Tambah(&Q, 17);
Tampil(Q.Front);
printf("\nJumlah data pada antrian : %d",
Count(Q.Front));
item=Hapus(&Q);
printf("\nNilai yang dihapus : %d",item);
item=Hapus(&Q);
printf("\nNilai yang dihapus : %d",item);
item=Hapus(&Q);
printf("\nNilai yang dihapus : %d",item);
Tampil(Q.Front);
printf("\nJumlah data pada antrian : %d",
Count(Q.Front));
}
Berikut Output Program nya:
0 comments:
Posting Komentar