Modul 4 - Stack Dan Queue
Modul 4 - Stack Dan Queue
Modul 4 - Stack Dan Queue
Daftar Isi:
Stack dan Queue Latihan soal Guided Unguided Take home Kunci jawaban soal guided
MODUL
PRAKTIKUM
STRUKTUR DATA 09
PENGANTAR Definisi
Stack disebut juga tumpukan dimana data hanya dapat dimasukkan dan diambil dari satu sisi. Karena itu, stack bersifat LIFO(Last In First Out). Operasi yang dapat dilakukan stack adalah: 1. Menambah (push) 2. Mengambil (pop) 3. megecek apakah stack penuh (isFull) 4. mengecek apakah stack kosong (isEmpty) 5. membersihkan stack (clear). 6. Mencetak isi stack (print)
Operasi-operasi stack
Saat ini, kita akan mencoba membuat stack dan operasi-operasi yang dapat dilakukannya. 1. Mendefinisikan stack dengan menggunakan struct
typedef struct stack // Mendefinisikan stack dengan menggunakan struct { int top; char data [15][20]; // menampung 15 data dengan jumlah string max 20 huruf };
f.
QUEUE
Queue disebut juga antrian dimana data masuk di satu sisi dan keluar di sisi yang lain. Karena itu, queue bersifat FIFO(First In First Out). Saat ini, kita akan mencoba membuat queue dan operasi-operasi yang dapat dilakukannya. Hal-hal yang perlu dilakukan untuk membuat queue yaitu 1. Mendefinisikan queue dengan menggunakan struct dimana kita perlu menggunakan variable head dan tail sebagai penanda pada stack.
typedef struct queue // Mendefinisikan queue dengan menggunakan struct { int head; int tail; char data [15][20]; // menampung 15 data dengan jumlah string max 20 huruf };
#define max 15 3. Membuat variable array sebagai implementasi queue queue antri;
4. Mendeklarasikan operasi-operasi/fungsi yang dapat dilakukan queue. a. Enqueue (menginputkan data pada queue)
void enqueue(char d[20]) { antri.head=0; antri.tail++; strcpy(antri.data[antri.tail],d); printf("data berhasil dimasukkan"); }
c. is
int isEmpty() { if (antri.tail==-1) { antri.head=-1; return 1; } else return 0; }
f.
SOAL LATIHAN:
Guided STACK:
1. Dari flowchart dibawah ini, buatlah fungsi utama untuk menjalankan stack diatas
dengan menggunakan menu.
start
Input a
switch (a)
a==1
Isfull()== 1
gets input
push(input)
a==2
IsEmpty()== 1
a==3
clear()
a==4
IsEmpty()== 1
print()
a!=5
selesai
Unguided STACK:
1. Buatlah program pengecekan bilangan palindrom menggunakan stack!
2. Buatlah program pengurutan menggunakan stack! Sehingga input yang kita masukkan selalu urut. Hint: buatlah menggunakan 2buah stack!
TAKEHOME STACK!
1. Kembangkan soal unguided nomor 2 untuk mengurutkan kata!
Stack (kosong) dan Postfik (kosong) Scan a Postfik: a Scan + Stack: + Scan b Postfik: ab Scan *, karena ToS (+) < *, maka add ke Stack
Stack: +* Scan c Postfik: abc Scan , karena * > -, maka pop Stack, dan add ke Postfik Stack: + Postfik: abc* Karena + <= -, maka pop Stack, dan add ke Postfik, karena Stack kosong, maka push ke stack
No.2: Jangan lupa sesuaikan fungsi pop, dan push yang sudah ada dengan kontex penggunaannya dan juga tipe datanya!
1. Buatlah fungsi utama untuk menjalankan queue pada modul dengan menggunakan menu. (untuk alurnya, hampir sama dengan flowchart untuk stack diatas. Hanya saja fungsi diganti dengan fungsi-fungsi queue.)
2. Carilah total, rata-rata, nilai terkecil, nilai terbesar dari nilai yang telah di inputkan pada queue Latihan Mandiri Kelas Queue 1. Tambahkanlah function untuk mencari suatu elemen dalam queue & stack 2. Tambahkan function untuk mengedit suatu elemen dalam queue & stack 3. Buatlah suatu fungsi untuk mencetak elemen stack ganjil 4. Buatlah suatu fungsi untuk mencetak elemen queue genap Latihan Mandiri Rumah /Tes Queue 1. Buatlah program untuk membuat kalkulator scientific!
2. Buatlah program untuk membalikkan kata yang berguna untuk membalik susunan elemen dalam queue Q dengan menggunakan bantuan sebuah stack . 3. Buatlah program untuk menentukan apakah kata yang dimasukan merupakan palindrome atau bukan.