TUJUAN
Mahasiswa mampu menerapkan konsep queue dengan stack
Latihan 1: Queue dengan Stack
Buatlah pola coding seperti percobaan 1 modul 15 dan manfaatkan hasil percobaan insertion dan deletion dari Modul 7 dan 8 untuk membuat coding queue dengan menggunakan stack.
Berikut deskripsi program yang harus dikerjakan:
- Program bisa menampilkan data queue awal [25]
- Program bisa melakukan fungsi Enqueue dan menampilkan hasil setelah fungsi tersebut dijalankan [25]
- Program bisa melakukan fungsi Dequeue dan menampilkan hasil setelah fungsi tersebut dijalankan [25]
- Program bisa berjalan tanpa error [25]
#include<stdio.h> #include<conio.h> #define MAX 10 struct stack { char p; struct stack *next,*prev; }; struct stack *head,*buffer,*temp,*temp2x,*tail; void enqueue(char karakter); void dequeue(); void tampil(); char deretan_nama[MAX],fungsi,huruf; int indeks=4,temp1,temp2,loop; main() { head=(struct stack*)malloc(sizeof(struct stack)); printf("Masukkan 5 huruf pertama dari nama :"); gets(deretan_nama);fflush(stdin); temp1=strlen(deretan_nama); for(loop=0;loop<temp1;loop++) { if(loop==0) { head->p=deretan_nama[loop]; head->next=NULL; temp=head; } else { buffer=(struct stack*)malloc(sizeof(struct stack)); buffer->p=deretan_nama[loop]; buffer->next=NULL; temp->next=buffer; temp=buffer; } } printf("Kondisi queue : "); temp2x=head; while(temp2x!=NULL) { printf("%c",temp2x->p); temp2x=temp2x->next; } printf("\n\n"); printf("Masukkan fungsi yang ingin dijalankan [E]Enqueue/[D]/Dequeue : "); fungsi=getchar(); switch(fungsi) { case 'E': printf("Masukkan 1 huruf yang ingin ditambahkan :"); huruf=getche(); enqueue(huruf); break; case 'D': dequeue(); break; default: printf("Input tidak terdeteksi"); } } void enqueue(char karakter) { buffer=(struct stack*)malloc(sizeof(struct stack)); buffer->p=karakter; buffer->next=NULL; temp->next=buffer; temp=buffer; printf("\n\nIsi queue sekarang adalah : ");tampil(); } void dequeue() { temp2x=head; head=head->next; free(temp2x); tampil(); } void tampil() { while(head!=NULL) { printf("%c",head->p); head=head->next; } }
Incoming Terms
- Laporan Praktikum Stack