-->

I'M Bayu Pradika

Graphic Designer . Web Developer . Programmer

Minggu, 21 Agustus 2022

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:

 


Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna Veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

0 comments:

Categories

Contact Us

BAYU
+62 896-2690-9619
Kampar, Riau, Indonesia