Laporan Praktikum Struktur Data Modul 16 – Queue dengan Stack

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:

  1. Program bisa menampilkan data queue awal [25]
  2. Program bisa melakukan fungsi Enqueue dan menampilkan hasil setelah fungsi tersebut dijalankan [25]
  3. Program bisa melakukan fungsi Dequeue dan menampilkan hasil setelah fungsi tersebut dijalankan [25]
  4. 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;
    
        }
    
    }

Share Button

Oleh Rinaldo Jonathan

Admin of this site. Artis papan PCB. #zoneRinaldo #Controllerism Studio Demon, Stage Angel, Sleepy Developer, Smoke free. Kalkud SHS 2012, PCR G15.

Tinggalkan Balasan

Verified by ExactMetrics