Stack & Queue | Pengertian dan Contoh Implemenrasi C++
Selasa, 21 April 2020
Tambah Komentar
Nama : Anggi Dwi
Kurniawan
NPM :
1915061021
MK :
Struktur Data
1. Kapan
stack dan queue digunakan?
2. Apa
keunggulan dan kelemahan stack dan queue?
3. Buatlah
implementasi program stack dan queue dengan studi kasus masing-masing!
Jawaban
:
1. A. Stack biasa digunakan dalam
mengontrol operasi dalam sebuah sistem operasi. Selain itu stack juga merupakan
algoritma yang baik yang dapat digunakan untuk membuat phaser (membaca urutan
operasi dari sebuah persamaan matematika).
B.
Queue digunakan untuk mengatasi antrian job yang harus
ditangani oleh sistem operasi. Selain itu queue juga digunakan dalam antrian
dalam dunia nyata, contohnya untuk manajemen bandwitch dan metode pembagian
bandwitch.
2.
A.
Stack
Kelebihan stack
yaitu penambahan dan penghapusan data dapat dilakukan dengan cepat, yaitu
selama memori masih tersedia penambahan data bisa terus dilakukan. Dengan
demikian tidak ada kekuatiran terjadinya stack overflow.
Kekurangan stack
yaitu setiap sel tidak hanya menyimpan value saja, melainkan juga pointer ke
sel berikutnya. Hal ini menyebabkan implementasi stack memakai linked list akan
memerlukan memori yang lebih banyak daripada di implementasikan dengan array.
B.
Queue
Kelebihan queue
yaitu data yang pertama masuk maka akan pertama dilayani.
Kekurangan queue
data yang terakhir masuk jika saat waktu pelayanan habis tidak dapat dilayani.
3.
A. Stack
#include
#include
#include
#include
using
namespace std;
struct
tumpukan
{
int top;
char tmp[10][10];
}
tumpukan;
void
push (char data[10]);
void
pop();
void
awal();
int
isEmpty();
int
isFull();
int
main()
{
int pilih;
char data[10];
string i;
awal();
do
{
system("cls");
cout<<"==================================="<
cout<<"= CONTOH PROGRAM TUMPUKAN (STACK) ="<
cout<<"==================================="<
cout<<"=====Program Tumpukan Buku======="<
cout<<" 1.
PUSH
="<
cout<<" 2.
POP
="<
cout<<" 3.
EXIT
="<
cout<<"==================================="<
if (!isEmpty())
{
for(int i=tumpukan.top; i>=0; i--)
{
cout<<"["<
}
}
else
{
cout<<"[tumpukan Buku dalam kondisi kosong]";
}
cout<<"\n Masukan Pilihan :";cin>>pilih;
switch (pilih)
{
case 1:
cout<<"Masukan Buku kedalam tumpukan :";cin>>data;
push(data);
break;
case 2:
pop();
break;
case 3:
cout<<"Tekan enter untuk keluar :";
break;
default:
cout<<"ERROR!";
break;
}
}
while
(pilih!=3);
}
void
push (char data[10])
{
if (!isFull())
{
tumpukan.top=tumpukan.top+1;
strcpy(tumpukan.tmp[tumpukan.top],data);
}
else
cout<<"Buku
dalam tumpukan penuh";
}
void
pop()
{
if (!isEmpty())
{
tumpukan.top--;
cout<<"Buku pada tumpukan ke- "<<
tumpukan.top+2<<"sudah diambil";
}
else
cout<<"Buku
dalam tumpukan kosong";
}
void
awal()
{
tumpukan.top= -1;
}
int
isEmpty()
{
if (tumpukan.top==-1)
return 1;
else
return 0;
}
int
isFull()
{
if (tumpukan.top==10-1)
return 1;
else
return 0;
}
B. Queue
#include
#include
#include
#include
#define max 50
#define true 1
#define false 0
using std::cout;
using std::endl;
using namespace std;
int pil;
char jwb;
void pilih();
struct queue {
int belakang;
int elemen[];
};float que; struct queue
buatqueue;
int queuepenuh () {
if(buatqueue.belakang==max)
return true;
else
return false;}
int queuekosong ()
{
if (buatqueue.belakang == -1)
return true;
else
return false;
}
void enqueue (float que)
{
if (queuepenuh() == true)
cout<< "Queue
Penuh\n";
else
{
buatqueue.belakang++;
buatqueue.elemen[buatqueue.belakang]=que;
}
}
void dequeue ()
{
if(queuekosong()==true)
{
cout<<"Queue
Kososngn\n";}
else
{
cout<<"Dequeue
"<
buatqueue.belakang--;
}
}
void bantu(){
coutque;
enqueue(que);
}
void cetakqueue() {
cout<<"Queue =
";
for (int i=0;
i<=buatqueue.belakang; i++)
{
cout<
}
int main () {
buatqueue.belakang = -1;
do
{
cout<
cout<<"\t\t==Menu
Queue=="<
cout<<"1.
Enqueue"<
cout<<"2.
Dequeue"<
cout<<"3. Cetak
Queue"<
cout<<"4.
Keluar"<
coutpil;
switch (pil){
case 1:{
do{
coutque;
enqueue(que);
coutjwb;
}while(jwb=='y');
system ("cls");
}
break;
case 2:
dequeue();
cout<<", Dequeue Berhasil!\n";
getch();
system ("cls");
break;
case 3:
cetakqueue();
getch();
system ("cls");
break;
case 4:
exit (0);
break;
}
} while(pil!=7);
while(jwb=='y'|| jwb=='Y');
}
Belum ada Komentar untuk "Stack & Queue | Pengertian dan Contoh Implemenrasi C++"
Posting Komentar