Setelah pertemuan ini mahasiswa mampu:
Pertanyaan:
"Mengapa queue disebut struktur data linear?"
Tree adalah struktur hierarki tanpa siklus (cycle) dan setiap node (kecuali root) hanya punya satu parent.
Tree adalah: Struktur data hierarkis yang terdiri dari node-node yang saling terhubung.
"Searching pada data linear = O(N), pada tree yang seimbang = O(log N)."
Jenis tree yang paling umum digunakan dalam pemrograman.
Setiap node maksimal 2 anak.
Node bisa memiliki lebih dari 2 anak.
Setiap node punya 0 atau 2 anak.
Level terakhir terisi dari kiri.
Miring ke satu sisi.
struct Node {
char data;
Node* left;
Node* right;
};
Node* newNode(char value) {
Node* node = new Node();
node->data = value;
node->left = NULL;
node->right = NULL;
return node;
}
root = newNode('A');
root->left = newNode('B');
root->right = newNode('C');
void preorder(Node* root) {
if (root != NULL) {
cout << root->data << " "; // ROOT
preorder(root->left); // LEFT
preorder(root->right); // RIGHT
}
}
Struktur data yang menggabungkan efisiensi Binary Search dengan fleksibilitas Linked List.
Node* search(Node* root, int key) {
if (root == NULL || root->data == key)
return root;
if (key < root->data)
return search(root->left, key);
return search(root->right, key);
}
Node* insert(Node* node, int key) {
if (node == NULL) return newNode(key);
if (key < node->data)
node->left = insert(node->left, key);
else if (key > node->data)
node->right = insert(node->right, key);
return node;
}
| Struktur Data | Karakteristik |
|---|---|
| Array | Cepat akses index, statis |
| Linked List | Fleksibel, dinamis |
| Stack | LIFO (Undo, Back) |
| Queue | FIFO (Antrean, Buffer) |
| Tree | Hierarki, Cepat Cari |
Anda telah menguasai fondasi ilmu komputer!
"Choosing the right data structure is choosing the right way to think about data."