Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Pertemuan Struktur Data *Pohon Ekspresi *

Presentasi serupa


Presentasi berjudul: "Pertemuan Struktur Data *Pohon Ekspresi *"— Transcript presentasi:

1 Pertemuan Struktur Data *Pohon Ekspresi *
STMIK JAKARTA STI&K Disusun oleh : Aqwam Rosadi K

2 Kompetensi Mahasiswa mampu membuat dan mengimplementasikan pohon ekspresi Mahasiswa mampu mengimplementasi pembuatan ekspresi dari pohon ekspresi

3 Expression Tree - 1 Sebuah expression tree adalah sebuah binary tree dengan sifat : Setiap leaf adalah sebuah operand. Root dan internal nodes adalah operators. Subtrees adalah subexpressions, dengan root adalah sebuah operator.

4 Expression Tree - 2 Dalam expression tree, 3 cara traversals akan membentuk 3 format ekspresi yang berbeda yaitu : infix, postfix, and prefix. Inorder traversal menghasilkan infix expression Postorder traversal menghasilkan postfix expression Preorder traversal menghasilkan prefix expression

5 Contoh Expression Tree
A+BC-DE  ((A+(BC))-(DE)) - + A B C D E

6 Contoh Expression Tree
A*B+C  (A*(B+C)) A  -B+CDE  ((A  (-B))+((CD)E)) * A + B C A E + - B C D

7 Infix Traversal Saat mencetak infix expression tree, kita harus menambahkan kurung buka pada awal setiap ekspresi dan kurung tutup pada akhir ekspresi. Dikarenakan root dari tree dan setiap subtree dari tree menyatakan subexpression, maka kita mencetak kurung buka saat memulai sebuah tree atau subtree dan kurung tutup saat semua anak dari tree/subtree sudah diproses.

8

9 Infix Traversal Algorithm infix (val tree <tree pointer>)
if (tree not empty) if (tree→token is an operand) print (tree → token) else print (open parenthesis) infix (tree →left) print (tree →token) infix (tree →right) print (close parenthesis) end if return end infix

10 Postfix Traversal Menggunakan postorder traversal seperti pada tree.
Tidak membutuhkan kurung Algorithm postfix (val tree <tree pointer>) if (tree not empty) postfix (tree →left) postfix (tree →right) print (tree →token) end if return end postfix

11 Prefix Traversal Menggunakan preorder traversal seperti pada tree.
Tidak membutuhkan kurung Algorithm prefix (val tree <tree pointer>) if (tree not empty) print (tree →token) prefix (tree →left) prefix (tree →right) end if return end prefix

12 Infix or postfix or prefix ?
Bentuk infix 3+5*4. Berapa hasilnya ? Bentuk prefix * Berapa hasilnya ? Bentuk 35+4*. Berapa hasilnya ?

13 Konversi bentuk infix, prefix, postfix
Ada 6 konversi yang dapat dikerjakan : infix -> prefix, infix -> postfix, prefix -> infix, prefix -> postfix, postfix -> prefix, postfix -> infix. Untuk 2 yang pertama menggunakan stack, sedangkan 4 yang terakhir menggunakan Expression Trees.

14 Membuat Pohon Ekspresi dari Ekspresi Postfix
Menggunakan stack untuk menyimpan operand Tree yang dibuat : Node yang berisi nama variabel menjadi daun Node yang berisi operator memiliki paling sedikit 2 anak yang dapat berupa operator lain atau node daun

15 Membuat Pohon Ekspresi dari Ekspresi Postfix
A B C D * - + E / * * A B C D D C D C C B B B B A A A A A Stack Stack Stack Stack Stack

16 Membuat Pohon Ekspresi dari Ekspresi Postfix
A B C D * - + E / / - + E / E A B C D - * + E B C D - * A B C D - * + A B C D - * + Stack Stack Stack Stack

17 Membuat Pohon Ekspresi dari Ekspresi Postfix
Ilustrasi Lain

18 push(new ExpressionTree(5,null,null)); 5
* 9 + Token Langkah push(new ExpressionTree(5,null,null)); 5 Stack (top at right) 5 Token Langkah push(new ExpressionTree(3,null,null)); 3 Stack (top at right) 5 3

19 push(new ExpressionTree(-,op1,op2)); -
Token Langkah op2 = pop op1 = pop push(new ExpressionTree(-,op1,op2)); - Stack (top at right) - 5 3

20 push(new ExpressionTree(4,null,null)); 4
Token Langkah push(new ExpressionTree(4,null,null)); 4 Stack (top at right) - 4 5 3

21 push(new ExpressionTree(*,op1,op2)); *
Token Langkah op2 = pop op1 = pop push(new ExpressionTree(*,op1,op2)); * Stack (top at right) * - 4 5 3

22 push(new ExpressionTree(9,null,null)); 9
Token Langkah push(new ExpressionTree(9,null,null)); 9 Stack (top at right) * 9 - 4 5 3

23 push(new ExpressionTree(+,op1,op2)); +
Token Langkah op2 = pop op1 = pop push(new ExpressionTree(+,op1,op2)); + Stack (top at right) + End of the expression has been reached, and the full expression tree is the only tree left on the stack * 9 - 4 5 3

24 Praktikum Membuat pohon ekspresi dari ekspresi postfix
Operasi traversal pada pohon ekspresi Berupa algoritma & rancangan program

25 “Watch your habits, for they become your character
“Watch your habits, for they become your character. Develop your character, for it becomes your destiny” (Perhatikan kebiasaanmu, karena itu akan menjadi karaktermu. Bentuklah karaktermu, karena itu akan menentukan masa depanmu) 


Download ppt "Pertemuan Struktur Data *Pohon Ekspresi *"

Presentasi serupa


Iklan oleh Google