QUEUE / ANTRIAN
PENYUSUN :
Zakaria Annas
(123090182)
Plug : 6
Asisten Dosen : Henry Tri P.
Co.Asisten : Agus Hermawan
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” YOGYAKARTA
2010
//queue melingkar dengan mengorbankan 1 daerah kosong #include <iostream> #include <malloc.h> #define max 5 #define True 1 #define False 0 Using std::cout; Using std::cin; Using std::endl; typedef float typeinfo; typedef struct typequeue{int depan, belakang; typeinfo elemen[max];}; struct typequeue queue; void buatqueue(); void cetakqueue(); void enqueue(float IB); void dequeue(); void jumlahqueue(); void jumlahisi(); int queuekosong(); int queuepenuh(); int main() { int h,i,j; buatqueue(); cout << "Masukan jumlah enqueue : " ; cin >> j; for (i=0; i<j ; i++) { cout << "queue : "; cin >> h; enqueue(h); } cout << "kondisi awal queue sesudah di enqueu : \n"; /*enqueue(12); enqueue(78); enqueue(5); enqueue(34);*/ cetakqueue(); jumlahqueue(); jumlahisi(); cout << "\nMasukkan jumlah dequeue : "; cin >> j; for(i=0;i<j;i++) { dequeue(); } cout << "\nKondisi queue sesudah di dequeu : \n"; /*dequeue(); dequeue();*/ cetakqueue(); jumlahqueue(); jumlahisi(); cout << "\nMasukkan jumlah enqueue : "; cin >> j; for(i=0;i<j;i++) { cout << "queue : "; cin >> l; enqueue(l); } cout << "\n\nKondisi final queue sesudah di enqueue : \n"; /*enqueue(89); enqueue(11);*/ cetakqueue(); jumlahqueue(); jumlahisi(); cout << "\n\n"; } void buatqueue() { queue.belakang=1; queue.depan=1; } int queuekosong() { if(queue.depan==queue.belakang) return(True); else return(False); } int queuepenuh() { int next_belakang; if(queue.belakang==max) next_belakang=1; else next_belakang=queue.belakang+1; if(queue.depan==next_belakang) return(True); else return(False); } void enqueue(float IB) { if(queuepenuh()) cout << "queue overflow\n"; else {if(queue.belakang==max) queue.belakang=1; else queue.belakang++; queue.elemen[queue.belakang]=IB; } } void dequeue() { typeinfo ID; if(queuekosong()) cout << "queue underflow\n"; else {ID=queue.elemen[queue.depan+1]; if(queue.depan==max) queue.depan=1; else queue.depan++; } } void cetakqueue() { int i; if(queue.depan==queue.belakang) cout<<"queue kosong !"; else {if(queue.depan<queue.belakang) {i=queue.depan+1; while(i<=queue.belakang) {cout << " "<< queue.elemen[i]; i++;} } else {for(i=queue.depan+1;i<=max;i++) cout << " " << queue.elemen[i]; for(i=1;i<=queue.belakang;i++) cout << " " << queue.elemen[i]; } } } void jumlahqueue() { int i=1; while(i<queue.belakang-1) { i++;} cout << "\nJumlah queue : " << i << "\n"; } void jumlahisi() { int i=1; float jum=0; while(i<=queue.belakang) { jum = jum + queue.elemen[i]; i++; } cout << "Jumlah akumulasi isi queue = " << jum << "\n\n"; } |
Output :
Baca Juga : APLIKASI GRAFIKA KOMPUTER MENGGUNAKAN LAZARUS
Semoga dengan postingan diatas yang berjudul Contoh Pemrograman Struktur Data Modul Queue Antrian dapat bermanfaat untuk sobatku semuanya.
0 Response to "Contoh Pemrograman Struktur Data Modul Queue Antrian"
Posting Komentar