Queue week 9

Queue

Queue adalah Suatu kumpulan data dimana penambahan data atau elemnnya dilakukan di belakang
sedangkan kalo mau hapusnya dilakukan dari sisi depan ( FIFO )

contoh :

front                               rear
Q1    ,    Q2    ,    Q3    ,    Q4

istilah istilah di Queue
1. Elemen depan = front
2. Elemen belakang = rear
3. Fifo = data yang pertama kali masuk , yang paling pertama juga keluar.
4. Enqueue = proses buat nambah data baru di belakang
5. Dequeue = proses buat hapus data/ ambil data di depan

Perbedaan Stack sama Queue adalah
Kalo stack itu sifatnya LIFO , kalo queue sifatnya FIFO .
Kalo stack pake istilah bottom sama top . kalo queue pake istilah front dan rear

implementasi source code :

– struct :

struct data{
char bil[10];
struct data *next,*prev;
};

– function tambah data di belakang

void tambahdata(data **front,char input[], data **rear){
data *baru;
data *curr;
printf(“New Data Insert\n”);
baru = (struct data*) malloc (sizeof(data));

strcpy(baru -> bil, input);
baru->next=NULL;
if(*front == NULL){
*front=baru;
*rear=baru;
}
else{
curr=*front;
while(curr->next!=NULL){
curr=curr->next;
}
curr->next=baru;
}
getch();
}

– function menampilkan data yang sudah di input

void tampildata(data **rear){
data *temp;
temp = *rear;
if(*rear == NULL){
printf(“Stack is Empty\n”);
}
else {
while(temp != NULL){
printf(“%s “, temp -> bil);
temp = temp -> next;
}
printf(“\n”);
}
}

– Function dequeue

void dequeue(data **front){
data *curr;
if(front==NULL){
printf(“Queue is Empty”);
}
else{
curr=*front;
printf(“Pooped : %s \n”,curr->bil);
*front=(*front)->next;
free(curr);
}
}

– Function top

void frontt(data **rear){
struct data *var=*rear;
if(var!=NULL){
printf(“%s”,var->bil);
printf(“\n”);
}
else{
printf(“\nQueue is Empty”);
}
}

– Function cek data apakah kosong atau tidak

void cek(data **rear){
struct data *temp, *var=*rear;
if(var != NULL){
printf(“Queue is Empty\n”);
}
else{
printf(“Queue is Not empty”);
}
}

Leave a comment