Download - Struktur data 04 (binary tree)
![Page 1: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/1.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
BAGIAN BAGIAN IVIV
![Page 2: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/2.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
TreeTree
![Page 3: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/3.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
TreeTree
Merupakan tipe data abstrak yang mempunyai hubungan antar elemen:
One to many.
Hubungan one to many meliputi:1. Hubungan one to one. 2. Hubungan one to zero.
![Page 4: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/4.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
TreeTreeKarakteristik Tree
1. Terdapat satu node yang unik, yang tidak memiliki predecessor. Node ini disebut
Root.
2. Terdapat satu atau beberapa node yang tidak memiliki successor. Node-node tersebut disebut Leaf.
3. Setiap node kecuali Root, pasti memiliki satu predecessor yang unik.
4. Setiap node kecuali Leaf, pasti memiliki satu atau lebih successor
![Page 5: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/5.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
TreeTreeHubungan Parent-Child
• PARENT adalah predecessor langsung dari suatu node.
• CHILD adalah successor langsung dari suatu node.
• Node-node yang memiliki Parent yang sama disebut SIBLING.
![Page 6: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/6.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
TreeTree
B
A
E
F G I K
C D
JH
Root
Leaf Leaf LeafLeafLeaf Leaf
Leaf
![Page 7: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/7.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
TreeTree
B
A
E
F G I K
C D
JH
Root
Leaf Leaf LeafLeafLeaf Leaf
Leaf
Level 1
Level 2
Level 3
Path
Path-length=2
Tree-heigth = 3
![Page 8: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/8.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Binary tree adalah bentuk khusus dari tree dimana setiap node hanya diperbolehkanmemiliki maksimum dua anak.
![Page 9: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/9.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
![Page 10: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/10.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Bentuk khusus binary-tree:
1. Full binary-treeSemua node, kecuali leaf memliki dua anak danmemiliki path-length yang sama.
2. Complete binary-treeSemua node, kecuali leaf memiliki dua anak.
3. Skewed binary-treeSemua node, kecuali leaf memiliki satu anak.
![Page 11: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/11.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary TreeSifat rekursif pada Binary tree
1. Suatu Binary tree dapat berupa tree kosong.
2. Bila tree tidak kosong, tree memiliki satu node, yang disebut Root node, beserta Subtree kiri dan Subtree kanan.
3. Subtree kiri dan Subtree kanan dapat berupa tree kosong.Bila Subtree tidak kosong, Subtree memiliki satu node - disebut Root node – beserta Subtree kiri dan Subtree kanan.
![Page 12: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/12.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
ROOT
SUBTREE KIRI SUBTREE KANAN
![Page 13: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/13.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Tree Traversal
Akses pada suatu node pada treetidak semudah seperti pada linked
list,karena sejak masuk ke root node,ada dua jalur yang harus dipilih:left child atau right child.
![Page 14: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/14.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Tiga macam traversal yang dapat digunakan
untuk mengakses node-node didalam Binary tree:
INORDER : Left – Root – Right.
PREORDER : Root – Left – Right.
POSTORDER : Left – Right – Root.
![Page 15: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/15.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
A
B C
ROOT
Traversal Inorder : B – A – CTraversal Preorder : A – B – CTraversal Postorder : B – C – A
![Page 16: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/16.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
A
B C
D E
ROOT
Traversal Inorder : D – B – E – A – C Traversal Preorder : A – B – D – E – C Traversal Postorder : D – E – B – C – A
![Page 17: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/17.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
A
B C
D E
ROOT
Traversal Inorder : B – A – D – C – E Traversal Preorder : A – B – C – D – E Traversal Postorder : B – D – E – C – A
![Page 18: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/18.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
A
B C
D E F G
ROOT
Traversal Inorder : D – B – E – A – F – C – GTraversal Preorder : A – B – D – E – C – F – GTraversal Postorder : D – E – B – F – G – C – A
![Page 19: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/19.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary TreeOperasi-operasi pada Binary tree
1. Create( ) Menciptakan Binary tree baru dalam keadaan kosong.
2. Insert(elemen_type e, relative_pos r, bool fail) Menambahkan satu elemen ke dalam Binary tree pada posisi relatif terhadap current pointer. Posisi current pindah ke node baru.
Relative position pada perintah Insert:Root : Insert node baru sebagai RootLeft : Insert node baru sebagai Left child.Right : Insert node baru sebagai Right child.Parent : Insert node baru sebagai Parent. (selalu Fail)
![Page 20: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/20.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
3. DeleteSub( ) Subtree yang ditunjuk oleh current akan
dihapus, posisi current pindah ke parent dari node
yang dihapus.
4. Find(relative_pos rel, bool fail) Memindahkan current ke posisi rel.
5. Empty( ) Memeriksa apakah Binary tree kosong.
6. Clear( ) Menghapus seluruh Binary tree.
![Page 21: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/21.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Relative position pada perintah Find:Root : Memindahkan pointer Current ke RootLeft : Memindahkan pointer Current ke Left
child.Right : Memindahkan pointer Current ke Right
child.Parent: Memindahkan pointer Current ke
Parent.
![Page 22: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/22.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
7. Update(elemen_type e) Isi node yang ditunjuk oleh current akan diganti oleh isi dari e.
8. Retrieve(elemen_type *e) Menyalin isi node yang ditunjuk oleh current ke variabel e.
9. Traversal(order ord) Melaksanakan traversal sesuai dengan ord, yaitu: Inorder, Preorder atau Postorder. Posisi current tidak berubah.
![Page 23: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/23.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Contoh Operasi pada Binary-TreeContoh Operasi pada Binary-Tree
1. Create();1. Create();
2. Insert(‘A’, Root, Fail); 2. Insert(‘A’, Root, Fail);
Binary TreeBinary Tree
R C
NULL NULL
R = Root, C = Current
A
R
C
![Page 24: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/24.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan)
3. Insert(‘B’, Left , Fail); 4. Insert(’C’, 3. Insert(‘B’, Left , Fail); 4. Insert(’C’, Left, Fail);Left, Fail);
Binary TreeBinary Tree
A
R
C B
A
R
C
B
C
![Page 25: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/25.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan)
5. Find(Parent , Fail); 6. Insert(’D’, Left, 5. Find(Parent , Fail); 6. Insert(’D’, Left, Fail);Fail);
Binary TreeBinary Tree
A
R
C B
C
A
R
C B
C
Fail = true
![Page 26: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/26.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan)
7. Insert(‘D’, Right, Fail); 8. Find(Root, 7. Insert(‘D’, Right, Fail); 8. Find(Root, Fail);Fail);
Binary TreeBinary Tree
A
R
C
B
C
A
R
B
C D C D
atau Find(Parent,Fail
);2x
![Page 27: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/27.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan)
9. Insert(‘E’, Right, Fail); 10. Insert(‘F’, 9. Insert(‘E’, Right, Fail); 10. Insert(‘F’, Right, Fail);Right, Fail);
Binary TreeBinary Tree
A
R
B
C D
C E
A
R
B
C D C
E
F
![Page 28: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/28.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan)
12. Traversal(Inorder); 13. 12. Traversal(Inorder); 13. Traversal(Postorder);Traversal(Postorder);
Binary TreeBinary Tree
A
R
B
C D
C E
C B D A E
A
R
B
C D
C E
C D B E A
![Page 29: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/29.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan)
14. Update(‘B’); 15. Find(Parent, 14. Update(‘B’); 15. Find(Parent, Fail);Fail);
Binary TreeBinary Tree
A
R
B
C D
C B
A
R
B
C D
C
B
![Page 30: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/30.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Contoh Operasi pada Binary-Tree (Lanjutan)Contoh Operasi pada Binary-Tree (Lanjutan)
16. Find(Left, Fail); 17. 16. Find(Left, Fail); 17. Deletesub(Parent, Fail);Deletesub(Parent, Fail);
Binary TreeBinary Tree
A
R
B
C D
C B
A
R
C
B
![Page 31: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/31.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Implementasi Binary tree dengan Array.
• Indeks pada array menyatakan nomor node.
• Indeks 0 adalah Root node.
• Indeks Left child dari node p adalah 2p + 1.
• Indeks Right child dari node p adalah 2p + 2.
• Indeks Parent dari node p adalah (p-1)/2.
![Page 32: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/32.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
B
A
C
D E F G
H I
Contoh Binary TreeContoh Binary TreeImplementasi dengan arrayImplementasi dengan array
![Page 33: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/33.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9][10][11][12]
Posisi elemen/node dalam array.
A B C D E F G H I
Kerugian implementasi binary-tree dengan array ?Kerugian implementasi binary-tree dengan array ?
![Page 34: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/34.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Implementasi dengan Double Linked list.
struct TNode{ elemen_type data; struct TNode *left; struct TNode *right;};
![Page 35: Struktur data 04 (binary tree)](https://reader033.vdocuments.mx/reader033/viewer/2022061200/54774da9b4af9f167f8b4583/html5/thumbnails/35.jpg)
Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah
Binary TreeBinary Tree
Implementasi dengan Multiple Linked list.
struct TNode{ elemen_type data; struct TNode *left; struct TNode *right; struct TNode *parent;};