Minggu, 18 Maret 2012

Membuat Program Antrian (Queue) dengan Cpp

Antrian (Queue) merupakan struktur data yang bersifat FIFO (First In First Out). Pada dasarnya antrian diimplementasikan sebagai sebuah kelas atau struktur yang mempunyai fungsi-fungsi dasar sebagai berikut.

  • queue, untuk memasukan simpul baru ke antrian
  • dequeue, menghapus simpul yang paling depan
  • isEmpty, mengecek apakah antrian dalam keadaan kosong
  • makeEmpty, mengosongkan antrian

Berikut adalah kode program yang saya buat dengan antrian sebagai sebuah struktur.

#include <iostream>
#include <string>
using namespace std;

/*
 * Membuat struktur sebuah simpul terdiri dari
 * data : string                menyimpan informasi simpul (nama orang)
 * node : pointer bertipe node  menyimpan alamat ke simpul berikutnya
 *
 * pFront menyimpan alamat simpul yang paling depan
 * pRear menyimpan alamat simpul yang paling belakang
 */
struct node {
    string data;
    node *next;
}*pFront, *pRear;

/*
 * Fungsi queue menambah simpul baru dalam antrian
 * @param   data    nama baru yang akan dimasukan dalam antrian
 */
void queue(const string data) {
    node *newNode;

    // membuat simpul baru
    newNode = new node;
    newNode->data = data;
    newNode->next = NULL;

    if(!pFront) {   //cek jika antrian masih kosong
        pFront = newNode;
    } else {
        pRear->next = newNode;
    }
    pRear = newNode;
}

/*
 * Fungsi dequeue menghapus simpul yang paling depan dalam antrian
 */
void dequeue() {
    node *delNode;

    delNode = pFront;
    pFront = pFront->next;
    delete delNode;
}

/*
 * Fungsi show menampilkan seluruh isi antrian
 */
void show() {
    node *buffNode;

    buffNode = pFront;
    while(buffNode) {
        cout << buffNode->data << endl;         
buffNode = buffNode->next;
    }
    cout << endl;
}

/*
 * Fungsi utama
 */
int main(int argc, char* argv[]) {
    pFront = pRear = NULL;

    queue("jimmy");
    queue("dewa");
    queue("otto");
    queue("alan");
    show();

    dequeue();
    queue("jimmy");
    show();
    return 0;
}

Koding ini saya buat dengan IDE Codeblock dan Compiler MINGW, yang mana kombinasi codeblock dan mingw menurut saya, bagus buat freeware yang powerful.

Demikian post saya kali ini, tentang struktur data antrian.. sampai jumpa di post berikutnya :D

Tidak ada komentar:

Posting Komentar