Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Tugas Data Structures Infix, Prefix, Postfix Notation, Stack, Queue, BFS, dan DFS, Assignments of Data Structures and Algorithms

Dokumen ini berisi pertanyaan-pertanyaan mengenai teori-teori infix, prefix, dan postfix notation, conversion infix to postfix algorithm, conversion infix to prefix algorithm, stack concept pada array dan linked list, queue concept pada array dan linked list, Breadth First Search, dan Depth First Search.

Typology: Assignments

2022/2023

Available from 03/18/2023

JasonMalvor
JasonMalvor 🇮🇩

6 documents

1 / 5

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Name: Jason Pangestu
NIM: 2602107650
1. Jelaskan tentang Infix, Prefix, Postfix Notation dan berikan contoh!
Infix notation adalah operator yang ditulis di antara operand atau variabel. Contohnya adalah
3 + (2 * 4) = 11
Prefix notation adalah operator yang ditulis sebelum operand atau variabel. Contohnya adalah
+ 3 * 2 4 = 11
Postfix notation adalah operator yang ditulis sesudah operand atau variabel. Contohnya
adalah 3 2 4 * + = 11
2. Jelaskan mengapa diperlukan prefix/postfix notation!
Alasan diperlukannya prefix atau postfix notation adalah karena mereka tidak memerlukan
adanya kurung untuk memprioritaskan operasi yang dijalankan terlebih dahulu dan komputer
akan lebih mudah atau cepat dalam menyelesaikan operasi tersebut karena komputer tidak
perlu mencari tahu lebih dulu mana operasi yang harus dijalankan terlebih dahulu.
3. Jelaskan mengenai cara Conversion Infix to Postfix Algorithm!
Dalam konversi ini, kita akan menggunakan stack dan string postfix (operasi yang sudah
dalam bentuk postfix). Algoritmanya adalah scan string atau operasi infix dari kiri ke kanan
karakter per karakter.
Jika itu adalah operand, masukkan ke string postfix di paling kanan.
Jika itu adalah kurung buka, masukkan ke stack di paling atas.
Jika itu adalah kurung tutup, masukkan elemen-elemen dalam stack dari paling atas sampai
menemukan kurung buka dalam stack tersebut pada string postfix di sebelah kanan. Lalu
kurung buka dalam stack tersebut dihilangkan.
Jika itu adalah operator, selama elemen paling atas dalam stack tersebut memiliki prioritas
yang lebih tinggi atau sama dengan operator yang di-scan tersebut, masukkan elemen tersebut
pada string postfix di sebelah kanan sampai menemukan kurung buka atau elemen yang
prioritasnya lebih rendah dalam stack tersebut. Jika sudah, masukkan operator yang di-scan
pada stack di paling atas.
Jika karakter pada operasi infix tersebut sudah habis, masukkan semua elemen urut dari
paling atas pada stack ke postfix notation tersebut di sebelah kanan.
4. Jelaskan mengenai cara Conversion Infix to Prefix Algorithm!
Pertama-tama, reverse atau balikkan operasi infix (Note: ‘(‘ akan menjadi ‘)’ dan ‘)’ akan
menjadi ‘(‘). Contoh 3 + (2 * 8) akan menjadi (8 * 2) + 3
Lakukan algoritma conversion infix to postfix.
Reverse atau balikkan operasi postfix tersebut dan hasilnya adalah operasi yang sudah dalam
bentuk operasi prefix.
5. Tuliskan secara detail tahapan Conversion Infix to Postfix => 5 + 7 * (4 7) / 8. Lalu
tuliskan tahapan evaluation terhadap Postfix notation yang diperoleh!
pf3
pf4
pf5

Partial preview of the text

Download Tugas Data Structures Infix, Prefix, Postfix Notation, Stack, Queue, BFS, dan DFS and more Assignments Data Structures and Algorithms in PDF only on Docsity!

NIM: 2602107650

  1. Jelaskan tentang Infix, Prefix, Postfix Notation dan berikan contoh! Infix notation adalah operator yang ditulis di antara operand atau variabel. Contohnya adalah 3 + (2 * 4) = 11 Prefix notation adalah operator yang ditulis sebelum operand atau variabel. Contohnya adalah
  • 3 * 2 4 = 11 Postfix notation adalah operator yang ditulis sesudah operand atau variabel. Contohnya adalah 3 2 4 * + = 11
  1. Jelaskan mengapa diperlukan prefix/postfix notation! Alasan diperlukannya prefix atau postfix notation adalah karena mereka tidak memerlukan adanya kurung untuk memprioritaskan operasi yang dijalankan terlebih dahulu dan komputer akan lebih mudah atau cepat dalam menyelesaikan operasi tersebut karena komputer tidak perlu mencari tahu lebih dulu mana operasi yang harus dijalankan terlebih dahulu.
  2. Jelaskan mengenai cara Conversion Infix to Postfix Algorithm! Dalam konversi ini, kita akan menggunakan stack dan string postfix (operasi yang sudah dalam bentuk postfix). Algoritmanya adalah scan string atau operasi infix dari kiri ke kanan karakter per karakter. Jika itu adalah operand, masukkan ke string postfix di paling kanan. Jika itu adalah kurung buka, masukkan ke stack di paling atas. Jika itu adalah kurung tutup, masukkan elemen-elemen dalam stack dari paling atas sampai menemukan kurung buka dalam stack tersebut pada string postfix di sebelah kanan. Lalu kurung buka dalam stack tersebut dihilangkan. Jika itu adalah operator, selama elemen paling atas dalam stack tersebut memiliki prioritas yang lebih tinggi atau sama dengan operator yang di-scan tersebut, masukkan elemen tersebut pada string postfix di sebelah kanan sampai menemukan kurung buka atau elemen yang prioritasnya lebih rendah dalam stack tersebut. Jika sudah, masukkan operator yang di-scan pada stack di paling atas. Jika karakter pada operasi infix tersebut sudah habis, masukkan semua elemen urut dari paling atas pada stack ke postfix notation tersebut di sebelah kanan.
  3. Jelaskan mengenai cara Conversion Infix to Prefix Algorithm! Pertama-tama, reverse atau balikkan operasi infix (Note: ‘(‘ akan menjadi ‘)’ dan ‘)’ akan menjadi ‘(‘). Contoh 3 + (2 * 8) akan menjadi (8 * 2) + 3 Lakukan algoritma conversion infix to postfix. Reverse atau balikkan operasi postfix tersebut dan hasilnya adalah operasi yang sudah dalam bentuk operasi prefix.
  4. Tuliskan secara detail tahapan Conversion Infix to Postfix => 5 + 7 * (4 – 7) / 8. Lalu tuliskan tahapan evaluation terhadap Postfix notation yang diperoleh!

NIM: 2602107650

String Input Infix Stack Prefix String Operation 5 + 7 * (4 – 7) / 8 5 + 7 * (4 – 7) / 8 5 add(5) 5 + 7 * (4 – 7) / 8 + 5 push(+) 5 + 7 * (4 – 7) / 8 + 5 7 add(7) 5 + 7 * (4 – 7) / 8 + * 5 7 push() 5 + 7 * ( 4 – 7) / 8 + * ( 5 7 push(() 5 + 7 * ( 4 – 7) / 8 + * ( 5 7 4 add( 4 ) 5 + 7 * (4 – 7) / 8 + * ( - 5 7 4 push(-) 5 + 7 * (4 – 7 ) / 8 + * ( - 5 7 4 7 add(7) 5 + 7 * (4 – 7 ) / 8 + * 5 7 4 7 - pop(-) 5 + 7 * (4 – 7) / 8 + / 5 7 4 7 - * pop(), push(/) 5 + 7 * (4 – 7) / 8 + / 5 7 4 7 - * 8 add( 8 ) 5 + 7 * (4 – 7) / 8 5 7 4 7 - * 8 / + pop(/), pop(+) Postfix Notation yang diperoleh: 5 7 4 7 - * 8 / +

  1. Tuliskan secara detail tahapan Conversion Infix to Prefix => 5 + 7 * (4 – 7) / 8. Lalu tuliskan tahapan evaluation terhadap Prefix notation yang diperoleh! 5 + 7 * (4 - 7) / 8 kita balik menjadi 8 / (7 – 4) * 7 + 5 String Input Infix Stack Prefix String Operation 8 / (7 – 4) * 7 + 5 8 / (7 – 4) * 7 + 5 8 add(8) 8 / (7 – 4) * 7 + 5 / 8 push(/) 8 / ( 7 – 4) * 7 + 5 / ( 8 push(() 8 / ( 7 – 4) * 7 + 5 / ( 8 7 add(7) 8 / (7 – 4) * 7 + 5 / ( - 8 7 push(-) 8 / (7 – 4 ) * 7 + 5 / ( - 8 7 4 add(4) 8 / (7 – 4 ) * 7 + 5 / 8 7 4 - pop(-) 8 / (7 – 4) * 7 + 5 * 8 7 4 - / pop(/), push() 8 / (7 – 4) * 7 + 5 * 8 7 4 - / 7 add(7) 8 / (7 – 4) * 7 + 5 + 8 7 4 - / 7 * pop(), push(+) 8 / (7 – 4) * 7 + 5 + 8 7 4 - / 7 * 5 add(5) 8 / (7 – 4) * 7 + 5 8 7 4 - / 7 * 5 + pop(+) 8 7 4 - / 7 * 5 + kita balik menjadi + 5 * 7 / - 4 7 8. Sehingga prefix notation yang diperoleh adalah + 5 * 7 / - 4 7 8
  2. Jelaskan dan berikan contoh Stack Concept pada array dan linked list! Pada array, terdapat dua variabel yaitu variabel TOP dan MAX. Variabel TOP berfungsi untuk menyimpan address atau posisi elemen paling atas pada array stack tersebut. Jika TOP bernilai NULL maka array stack tersebut kosong. Sedangkan MAX menyimpan banyak maksimum elemen yang dapat disimpan di array stack tersebut. Contoh:

NIM: 2602107650

Sedangkan pada linked list, tidak seperti array yang dimana array harus mempunyai ukuran yang pasti, linked list membuat queue dapat melakukan dynamic memory allocation. Dalam konsep queue pada linked list ini, variabel FRONT berfungsi layaknya head. Semua jenis insertions akan dilakukan pada bagian belakang (REAR) linked list dan semua jenis deletion akan dilakukan pada bagian depan linked list. Jika hanya ada head dalam linked list tersebut berarti queue kosong. Operasi yang dijalankan adalah push() (memasukkan elemen ke queue di posisi paling belakang linked list), pop() (Menghilangkan elemen queue di paling depan), dan front() (melihat elemen paling depan pada queue). Contoh:

  1. Berdasarkan gambar tree diatas sebutkan : a. Visit order dengan menggunakan BFS Queue Visited Operations A A B C A B C pop(A), push(B), push(C) C D E A B C D E pop(B), push(D), push(E) D E F G A B C D E F G pop(C), push(F), push(G) E F G A B C D E F G pop(D) F G A B C D E F G pop(E) G A B C D E F G pop(F) A B C D E F G pop(G)

NIM: 2602107650

b. Visit order dengan menggunakan DFS Queue Visited Operations A A B C A B C pop(A), push(B), push(C) B F G A B C F G pop(C), push(F), push(G) B F A B C F G pop(G) B A B C F G pop(F) D E A B C F G D E pop(B), push(D), push(E) D A B C F G D E pop(E) A B C F G D E pop(D)