Data Structure (Conclusion)
Pointer
int x;
int *px;
px = &x; –> x = 10; Maka *px = 10 juga
Data Structure dibagi menjadi :
– Array
– Linkedlist (Alamat beda-beda)
– Queues (Selalu dari depan [FIFO])
– Stacks (Last In First Out [LIFO])
– Binary Tree
– Hash Table
Queues – FIFO
Circular Queue – Antriannya muter
Priority Queue – Antrian berdasarkan prioritas (Biasa ditandai dengan *)
Binary Tree –> Pohon angka yang selalu memiliki 2 cabang
Binary Subtree –> Pohon angka yang selalu memiliki 2 cabang, dengan syarat bagian cabang kiri lebih kecil drpd induknya, dan kanan lebih besar drpd induknya (Atau sebaliknya)
Array –> Homogen (Asosiasi memory statis)
Linkedlist –> Heterogen (Asosiasi memory dinamis / sesuai kebutuhan)
Array adalah : Kumpulan data sejenis dengan tipe data yang sama Index array dimulai dari 0
Fungsi Array :
– Initialization (int a[3] = {1,2,3};)
– Inputting (scanf(input);)
– Assign (int a[3]; a[0] = 1; a[1] = 2;)
– Deleting
– Sorting
– Merging
– Sorting
Linked List
Structure (Pengelompokan data)
Struct data {
int age;
char nama[35];
} a, b; –> Dipanggil dengan a.age = 17;
Masked Struct (Struct dalam struct)
Struct profile {
blabla
};
Struct resident{
struct profile p;
blabla
};
Memory Allocation : Dynamic –> Menggunakan Memory Allocation, kalo sdh di Free
Linked List –> Masing-masing record akan menuju ke record yang lainnya
Linked List vs Array
Array | Linked List |
Alokasi Memori sesuai yang di pesan | Alokasi Memori sesuai kebutuhan user |
Alamat urut | Alamat tidak urut |
Akses bisa langsung menunjuk index | Akses harus mulai dari head / awal / depan |
Linked List Implementation
Single Linked List
Struct trade { Langkah :
int value; – Buat Struct (Data yang di simpan)
struct trade *next; – Deklarasi Variable Pointer
}; – Memory Allocation
– Isi data di memory
– Link ke List
Struct trade *head = 0;
head -> next = node;
node -> value = x;
Delete
temp -> next = del -> next;
temp -> next = temp -> next -> next;
free(del);
Posted by: dennisht
Categories:
Uncategorized