Struktur Data - Tree

Nama    : Aga Nafta Filadelfiano
NRP      : 5025251055
Kelas     : Struktur Data (D) 

Tree

Definisi Tree

Tree adalah struktur data non-linear yang berbentuk hierarki dan terdiri dari kumpulan elemen yang disebut node. Setiap node dalam tree dihubungkan oleh garis yang disebut edge, yang bisa bersifat terarah maupun tidak terarah.

Keunggulan Tree
  • Struktur non-linear → lebih fleksibel
  • Penyimpanan data lebih efisien
  • Akses data lebih cepat
  • Manipulasi data lebih optimal
  • Mendukung teknik traversal seperti, preorder, inorder, postorder

Syntax Program:


Output:


Penjelasan Code:

struct Node { ... };
Mendefinisikan struktur sebuah node dalam pohon.

char data
Menyimpan nilai dengan variabel char.

Node* left & Node* right
Sebagai penunjuk (pointer) ke anak sebelah kiri dan kanan.

Node(char val)
Constructor untuk mempermudah pembuatan node baru. Saat node dibuat, anak kiri dan kanannya otomatis diset kosong (NULL).

Preorder (Root -> Left -> Right)

void preorder(Node* root) {
    if (root == NULL) return; // Dasar rekursi: jika kosong, berhenti
    cout << root->data << " "; // Cetak data sekarang
    preorder(root->left);      // Rekursi ke kiri
    preorder(root->right);     // Rekursi ke kanan
}

Inorder (Left -> Root -> Right)

void inorder(Node* root) {
    if (root == NULL) return;
    inorder(root->left);       // Rekursi ke kiri dulu sampai mentok
    cout << root->data << " "; // Cetak data
    inorder(root->right);      // Rekursi ke kanan
}

Postorder (Left -> Right -> Root)

void postorder(Node* root) {
    if (root == NULL) return;
    postorder(root->left);     // Selesaikan semua anak kiri
    postorder(root->right);    // Selesaikan semua anak kanan
    cout << root->data << " "; // Terakhir cetak data root-nya
}

queue<Node*> q;
Membuat antrean untuk menyimpan alamat node.

q.push(root);
Memasukkan akar pertama ke antrean.

while (!q.empty())
Selama antrean tidak kosong, ambil node terdepan, cetak, lalu masukkan anak-anaknya
ke dalam antrean untuk diproses berikutnya.


Source Code: GitHub

Postingan populer dari blog ini

Curiculum Vitae - Aga Nafta Filadelfiano

Struktur Data - Studi Kasus Stack

Struktur Data - Tipe Data & Array