Struktur data terdiri dari root, dan sub pohon dalam susunan hierarkis.
- struktur organisasi
- pohon klasifikasi / silsilah
- sintaksis pohon / ekspresi pohon
3
Contoh
Struktur organisasi
- Pohon keluarga
- Pohon turnamen
4
Contoh
Struktur organisasi
Ekspresi aritmatika
Contoh: (4 + 3 * 7) - (5 / (3 + 4) +6
5
Contoh
Struktur organisasi
Ekspresi aritmatika
Pohon Keputusan
6
Terminologi Pohon
Daun
Koneksi antar node
- (orang tua, anak, saudara kandung)
Tingkat
Gelar
Tinggi dan kedalaman
7
Terminologi Pohon
Pohon adalah koleksi banyak node
8
Terminologi Pohon
Penerus suatu node disebut anak-anak ( child) Predecessor of a
9
Terminologi Pohon
Keturunan adalah daftar semua anak / penerus daun
Itu tingkat dari sebuah node didefinisikan oleh 1 + jumlah koneksi antara node dan root.
10
Terminologi Pohon
Itu tinggi dari a pohon adalah jumlah tepi pada jalur ke bawah terpanjang antara akar
dan daun.
Itu tinggi dari a simpul adalah jumlah tepi pada jalur ke bawah terpanjang antara
simpul dan daun itu.
Itu kedalaman simpul adalah jumlah tepi dari simpul ke simpul akar pohon
11
Terminologi
Derajat = 2
Akar
Derajat = 3
Node / Vertex
Derajat = 0
12
Latihan tentang Terminologi Pohon
Akar =
Saudara C =
Induk F =
Anak B =
Daun =
Node Internal = Level E
=
Tinggi pohon =
Gelar B =
Leluhur I =
Keturunan B =
13
Latihan tentang Terminologi Pohon
Buat pohon itu
Root: A
Leluhur S: {E, A}
14
Pertanyaan?
Notasi Pohon / Pohon yang Mewakili
Notasi Diagram Pohon
- Diagram simpul-tautan klasik
Notasi Bracket
- Kurung Bersarang
Notasi Level
- Garis besar / tampilan pohon
16
Notasi Diagram Pohon
17
Notasi Diagram Venn
18
Notasi Bracket
19
Notasi Level
20
Latihan pada Notasi Pohon
Buat pohon di Venn Diagram, Bracket, dan notasi level
Y
R S
Q
T WU Z
P
M. N
21
Pertanyaan?
Struktur Data Pohon Biner
23
Pohon Biner
Struktur Data Pohon dengan anak maksimum (derajat) 2, yang disebut sebagai kiri anak dan Baik
anak.
24
Properti Pohon Biner
- Paling banyak :
25
Jenis Pohon Biner
Pohon Biner Penuh
26
Pohon Biner Penuh
Sebuah pohon di mana setiap simpul selain daun memiliki dua anak
- kadang-kadang disebut pohon biner yang tepat atau 2-pohon
27
Pohon Biner Lengkap
pohon biner di mana setiap level, kecuali mungkin yang terakhir, terisi penuh, dan
semua node berada sejauh mungkin
B B C B C B C
D DE
28
Pohon miring
Binary Tree dengan cabang yang tidak seimbang antara cabang kiri dan kanan
29
ADT Binary Tree
Representasi Array
Indo nilai
1 A
2 B
3 C
4D5
6 F
7G
30
Representasi Array
jika sebuah node memiliki indeks saya, anak-anaknya ditemukan di indeks:
- Anak kiri: 2i +1
31
Representasi Array
Masalah:
1 2 3 4 5 6 7 8… 16
AB -C - - - D… E
- Ruang limbah
32
Representasi Daftar Tertaut
Kamus
root: BinTree
33
Binary Tree: Buat Node Baru
fungsi createNode (x: infotype): address
Algoritma
mengalokasikan (N)
info (N) • x kiri (N) • Tidak
tepat (N) • Batal
• N
34
Contoh Aplikasi Pohon Biner
Pohon Ekspresi Aritmatika
Pohon Keputusan
AVL Tree
Antrian Prioritas
- Binary Heap Tree
35
Pohon Ekspresi Aritmatika
Aplikasi spesifik pohon biner untuk mengevaluasi ekspresi tertentu
Contoh:
- (ab) / ((c + d) * e)
36
Latihan - buat pohon
(a + b) / (c - d * e) + f + g * h / i
((A + B) * (C + D)) / (E + F * H)
37
Pohon Pencarian Biner
Pohon biner dipesan / disortir
- Setiap node internal menyimpan kunci
38
Binary Search Tree: Masukkan Node baru
Prosedur insertBST (i: x: infotype, i / o: N: BinTree)
Algoritma
jika (N = Nihil) kemudian
N • createNode (x)
lain
jika (info (N)> x) kemudian
insertBST (x, kiri (N))
lain jika (info (N) <x) kemudian
insertBST (x, kanan (N))
lain
output ('duplikat')
39
Binary Search Tree: Cari Node
Fungsi findNode (i: x: infotype, i / o: N: BinTree): alamat
Algoritma
jika (info (N) = x) atau (N = Nil) kemudian
• N
lain
jika (info (N)> x) kemudian
findNode (x, kiri (N))
lain jika (info (N) <x) kemudian
findNode (x, kanan (N))
40
Binary Search Tree: Hapus Node
Hapus simpul P - Logika:
- P tidak punya anak: hapus P
• Ganti P dengan Q
41
Binary Search Tree: Hapus Node
Fungsi delMostRight (P: alamat, Q: alamat) • alamat
Algoritma
sementara (kanan (Q) <> NULL) melakukan
Q • info right (Q) (P) • info (Q) kiri (P) • deleteBST
(kiri (P), info (Q))
• P
• P
42
Binary Search Tree: Hapus Node
Fungsi deleteBST (P: address, x: infotype) -> address
Kamus
Fungsi delMostRight (P: alamat, Q: alamat) • alamat
Fungsi delMostLeft (P: alamat, Q: alamat) • alamat
Algoritma
jika (P = NULL) kemudian
• P
jika (x <info (P)) kemudian
kiri (P) • deleteBST (kiri (P), x)
lain jika (x> info (P)) kemudian
kanan (P) • deleteBST (kanan (P), x)
lain
jika (kiri (P) <> NULL) kemudian
P • delMostRight (P, kiri (P))
lain jika (kanan (P) <> NULL) kemudian
P • delMostLeft (P, kanan (P))
lain
hapus P.
• BATAL
• P
43
Pertanyaan?
Traversal di Binary Tree
Traversal DFS
- Pesan terlebih dahulu
- Dalam urutan
- Post-order
BFS traversal
- Tingkat-urutan
45
Pre-order Traversal
Pencarian Pertama Deep
Hasil:
- FBADCEGIH
46
Pre-order Traversal
Prosedur preOrder (i / o root: tree) Algoritma
47
In-order Traversal
Kiri • Akar • Baik
- Notasi infiks
Hasil:
- ABCDEFGHI
48
In-order Traversal
Prosedur inOrder (i / o root: tree) Algoritma
49
Traversal Pasca Pesanan
Kiri • Baik • Akar
- Notasi postfix
Hasil:
- ACEDBHIGF
50
Traversal Pasca Pesanan
Prosedur postOrder (i / o root: tree) Algoritma
51
Level-order Traversal
Luasnya Pencarian Pertama
Hasil:
- FBGADICEH
52
Level-order Traversal
Prosedur levelOrder (root: tree) Kamus
T: Algoritma
Antrian
enqueue (Q, root) while (bukan
isEmpty (Q))
n • output dequeue (Q) (n)
53
Latihan - tulis traversal - 1
54
Latihan - tulis traversal - 2
55
Latihan - tulis traversal - 3
56
Latihan - tulis traversal - 4
57
Latihan - Buat Pohon
Asumsikan ada SATU pohon, yang jika dilalui oleh Inorder menghasilkan: EACKFHDBG, dan
ketika dilintasi oleh Preorder yang dihasilkan: FAEKCDHGB
58
Pertanyaan?
60