P. 1
Jawaban Soal Ujian Midterm Sdata 2010

Jawaban Soal Ujian Midterm Sdata 2010

|Views: 4|Likes:
Published by Wisnu Grizzly

More info:

Published by: Wisnu Grizzly on Nov 11, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/05/2013

pdf

text

original

SOAL UJIAN MIDTERM FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS AHMAD DAHLAN

Mata Kuliah : Struktur Data Hari/Tanggal: Senin, 1 Nopember 2010 Dosen : Waktu : 90 menit 1. Drs. Wahyu Pujiyono, M.Kom 2. Fiftin Voviyanto, S.T 3. TEdi Fibri Asmara, S.T Sifat : Open Book. Hanya boleh membuka diktat dan Petunjuk Praktikum. Tidak diperbolehkan membuka buku/print-out apapun selain ketentuan.

1. [Nilai 30] Diberikan notasi postfiks berikut : 639–47-*+2/ a. Ubahlah menjadi bentuk infiks (rumus matematika). b. Dengan menggunakan pushdown stack hitunglah nilai dari notasi postfiks di atas Jawab : Langkah demi langkah : 639–47-*+2/ Karena – operator biner maka 2 operan di dekatnya akan terhubung : 6 (3 – 9) (4 – 7) * + 2 / Karena * operator biner maka 2 operan di dekatnya akan terhubung : 6 (3 – 9) * (4 – 7) + 2 / Karena + operator biner maka 2 operan di dekatnya akan terhubung : 6 + (3 – 9) * (4 – 7) 2 / Karena / operator biner maka 2 operan di dekatnya akan terhubung : (6 + (3 – 9) * (4 – 7)) / 2 Angka (operan) akan diberlakukan operasi push : 9 3 6 Operator – akan mem-pop 2 operan menjadi (3 – 9) = -6, 2 operan akan dipush : 7 4 -6 6 Operator – akan mem-pop 2 operan menjadi (4 – 7) = -3 akan menjadi : -3 -6 6 Operator * akan mem-pop 2 operan menjadi (-6 * -3) = 18 akan menjadi : 18 6

Asumsi lain.Operator + akan mem-pop 2 operan menjadi (6 + 18) = 24. firstNode = baru. Akhir->berikut = firstNode. Buatlah TDA (Tipe Data Abstrak) untuk circular link list di atas b. [Nilai 30] Terdapat sebuah circular link list sebagai berikut. // penting. }. merupakan ciri circular link list . 2 dipush ke stack akan menjadi : |2| |24| Operator / mempop 2 operan menjadi (24 / 2) = 12. 2. a. Ciri dari circular link list : Akhir->berikut = firstNode. Node * berikut. Misal informasi karakter ‘w’ adalah node baru yang akan ditaruh di depan : Perintah membuat node Baru dengan informasi ‘w’ : Node *baru. Penambahan node pada first node (gambarkan prosesnya dan berikan langkah dalam bentuk perintah C++) TDA Circular link list : Instan : Kumpulan informasi berupa karakter huruf kecil Operasi : Buat_node(char x) : membuat node baru dengan informasi karakter x Tambah_elemen_dibelakang() : menambah elemen paling belakang (pointer elemen yang baru menunjuk elemen pertama) Tambah_elemen_didepan() : menambah elemen paling depan (pointernya menunjuk elemen pertama link list) Tampilkan() : menelusuri elemen demi elemen dan menampilkan informasinya. Langkahnya : Baru->berikut = firstNode. pointer Akhir menunjuk elemen berisi informasi ‘e’. Kelas circular link list di atas dapat diasumsikan sbb : class Node { … private : char info. Baru->info = ‘w’.

while (Q2.} // tambahkan perintah C++ untuk menggabung Q2 ke Q1 di bawah ini dengan // menggunakan operasi/ methods yang tersedia // Jawaban : int output..} try {Q2. cout << "No queue add failed" << endl. try {Q1. . int x.Add(6).3.Add(1). void main(void) { LinkedQueue<int> Q1.Add(7).Add(3). // pointer ke node pertama Node<T> *rear. LinkedQueue<T>& Add(const T& x). Q1.Add(output).} catch (NoMem) {cout << "A queue add failed" << endl..delete(output).front != NULL) { Q2.} catch (NoMem) {cout << "A queue add failed" << endl.Add(4). [Nilai 30] Diberikan class LinkedQueue berikut : template<class T> class LinkedQueue { public: . LinkedQueue<T>& Delete(T& x). // pointer ke node terakhir }.Add(2). private: Node<T> *front. } } [Nilai 10] Nilai porto folio blog. Catatan : Semua elemen dari antrian Q2 berada pada antrian Q1.Add(5). Lengkapi main function berikut untuk menggabung antrian Q1 dan Q2 menjadi satu yaitu antrian Q1.. Q2. cout << "No queue add failed" << endl.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->