Pertemuan 10 (Tree)
Rinaltra Nabasa S
5025251024
Struktur Data D
Konsep Dasar Tree
Tree adalah struktur data hierarki non-linear. Berbeda dengan array atau linked list yang bersifat linear, tree memiliki struktur bercabang seperti pohon terbalik — akar di atas, daun di bawah.
Terminologi Penting
| Istilah | Penjelasan |
|---|---|
| Node | Elemen/simpul dalam tree |
| Root | Node paling atas (tidak punya parent) |
| Edge | Garis penghubung antar node |
| Parent | Node yang memiliki anak |
| Child | Node yang berada di bawah parent |
| Leaf | Node yang tidak punya anak |
| Height | Jarak dari root ke leaf terdalam |
Struktur Kode
1. Struct Node
struct Node {
char data; // nilai yang disimpan
Node* left; // pointer ke anak kiri
Node* right; // pointer ke anak kanan
};
Ini adalah Binary Tree — setiap node maksimal punya 2 anak (kiri dan kanan).
2. Cara Membangun Tree (main)
Kode menggunakan Level-Order Insertion dengan queue. Setiap node baru diisi ke posisi paling kiri yang kosong, baris per baris:
Input: A B C D E F G
```---
## 4 Jenis Traversal (Penelusuran)
Traversal adalah cara mengunjungi semua node dalam tree. Kode mengimplementasikan 4 jenis:---
## Cara Kerja Traversal (Rekursi)
Ketiga traversal pertama menggunakan **rekursi**. Pola dasarnya sama, yang membedakan hanyalah *kapan* node dicetak:
```cpp
void preorder(Node* root) {
if (root == NULL) return; // base case
cout << root->data; // ← cetak DULU (Pre)
preorder(root->left); // lalu rekursi kiri
preorder(root->right); // lalu rekursi kanan
}
void inorder(Node* root) {
if (root == NULL) return;
inorder(root->left); // rekursi kiri dulu
cout << root->data; // ← cetak DI TENGAH (In)
inorder(root->right);
}
void postorder(Node* root) {
if (root == NULL) return;
postorder(root->left);
postorder(root->right);
cout << root->data; // ← cetak PALING AKHIR (Post)
}
Level Order berbeda — menggunakan queue (antrian), bukan rekursi:
- Masukkan root ke queue
- Ambil node depan, cetak, lalu masukkan anak-anaknya
- Ulangi sampai queue kosong
Output Program
Jika input 7 node dengan nilai A B C D E F G, outputnya:
Preorder : A B D E C F G
Inorder : D B E A F C G
Postorder : D E B F G C A
LevelOrder: A B C D E F G
Ringkasan
Tree adalah fondasi dari banyak struktur data lanjutan seperti BST, AVL Tree, Heap, dan Trie. Memahami traversal (Preorder, Inorder, Postorder, Level Order) adalah kemampuan dasar yang wajib dikuasai karena digunakan dalam pencarian, pengurutan, dan evaluasi ekspresi.
Kode
Tree (pohon) adalah struktur data non-linear yang berbentuk hierarki dan terdiri dari kumpulan elemen yang disebut node (simpul). Setiap node dalam tree dihubungkan oleh garis yang disebut edge (sisi), yang bisa bersifat terarah (directed) maupun tidak terarah (undirected).
Implementasi Kode:
Comments
Post a Comment