Posts

Heap

Image
Heap Heap is a special case of balanced binary tree data structure where the root-node key is compared with its children and arranged accordingly. Min-Heap Where the value of the root node is less than or equal to either of its children. Min-heap construction Algorithm 1. Create a new node at the end of the heap 2. Assign new value to the node. 3. Compare the value of this child node with its parent 4. if value of parents is more than child, then swap them 5. repeat step 3 & 4 until heap property holds Min-heap deletetion 1. Remove root node 2. Move last element of the last root to root 3. Compare the value of this child node with its parent 4. If the value is more than child, then swap them. 5. Repeat step 3 & 4 until heap property holds Max-Heap Where the value of the root node is greater than or equal to either of its children. Max-heap construction Algorithm 1. Create a new node at the end of the heap 2. Assign new value to the node. 3. Compar...

AVL Tree

Image
AVL Tree AVL Tree adalah Binary Search Tree yang memiliki perbedaan tinggi maksimal 1 antara subtree kiri dan subtree kanan. AVL Tree muncul untuk menyeimbangkan Binary Search Tree. Dengan AVL Tree, waktu pencarian dan bentuk tree dapat di persingkat dan lebih sederhana. contoh: subtree dari 12 yang sebelah kanan ada maksnya ada 2 dan di sebelah kiri maksnya ada 3 sehingga memiliki beda tinggi hanya 1. ini masih diperbolehkan karena beda tinggi hanya 1 Penambahan node di AVL Tree single rotation single rotation dilakukan bila kondisi AVL tree saat akan ditambahkan node baru dan posisi node baru seperti pada gambar berikut. T1,T2, dan T3 adalah sub tree yang urutannya harus seperti demikian serta height-nya harus sama (>=0). double rotation Double rotation dilakukan bila kondisi AVL Tree saat akan ditambahkan node baru dan posisi node baru seperti pada gambar brikut. T1, T2, T3, dan T4 adalah subtree yang urutannya harus seperti demikian. Tinggi subtree T1 h...

summery

Image
summery apa itu linked list? linked list adalah struktuer data yang terdiri dari urutan record data dimana setiap record memiliki field yang menyimpan alamat dari record selanjutnya elemen yang dihubungkan linked kepada linked list disebut node. pada linked list terdapat istilah seperti head dan tail, head adalah elemen yang bearada di posisi pertama pada linked list sementara tail adalah elmen yang berada di posisi terakhir  pada linked list. Single linked list Single linked list merupakan suatu linked list yang hanya memiliki satu variabel pointer saja. Dimana pointer tersebut menunjuk ke node selanjutnya. field tail biasanya menunjuk ke NULL. contoh: struct Peserta {       char nama[25];       int usia;       struct Peserta *next; }*head,*tail; Double Linked List Double Linked lList merupakan suatu linked list yang memiliki dua variabel pointer. Pointer yang satu menunjuk ke node selanjutnya dan yang satu lagi ke n...

Binary search tree

Binary Search Tree Tree adalah salah satu bentuk struktur data yang menggambarkan hubungan hierarki antar elemen-elemennya. Sebuah nide dalam tree biasanya memiliki beberapa node lagi sebagai percabngan atas dirinya. Lalu ada yang namanya Binary Tree. Sebenarnya binary tree mirip dengan tree. hanya saja, kita akan mengambil sifat bilangan biner yang selalu bernilai 1 atau 0 (2 pilihan). binary tree mempunyai maksimal 2 percabangan Binaryb Search Tree adalah struktur data yang mengadopsi knsep binary tree namun terdapat aturan bahwa setia child node sebelah kiri lebih kecil dari pada root node dan child node sebelah kanan harus lebih besar dari root node. tujuan dari membedakan nilai kiri dan kanan adalah untuk memberikan efisiensi terhadap proses searching aturan dari Binary Search Tree: Sertiap child node sebelah kiri harus lebih kecil daripada root nodenya  Sertiap child node sebelah kanan harus lebih besar daripada root nodenya Source:  https://www.mahirkoding...

Hashing Table dan Binary Tree

Image
Hashing Table dan Binary Tree 1. Hash Table Hash Table adalah sebuah struktur data yang terdiri atas sebuah tabel dan fungsi yang bertujuan untuk memetakan nilai kunci yang unik untuk setiap record (baris) menjadi angka (hash) lokasi record tersebut dalam sebuah tabel.  Keunggulan dari struktur hash table ini adalah waktu aksesnya yang cukup cepat, jika record yang dicari langsung berada pada angka hash lokasi penyimpanannya. Akan tetapi pada kenyataannya sering sekali ditemukan hash table yang record-recordnya mempunyai angka hash yang sama (bertabrakan). operasi pada hash table: insert: di berikan sebuah key dan nilai, insert nilai dalam tabel find: diberikan sebuah key, temukan nilai yang berhubungan dengan key remove: diberikan sebuah key,temukan nilai yang berhubungan dengan key, kemudian hapus nilai tersebut getIterator: mengambalikan iterator,yang memeriksa nilai satu demi satu contoh: struct hashnode_s { char *key; void *data; struct hashnode...

Linked List II

Mempelajari bagaimana cara penggunaan push. Push Dalam Linked List ada beberapa tipe push yaitu push depan, push tengah dan push belakang. -Push depan push depan merupakan penyisipan di akhir list, sehingga pointer tail berpindah ke elemen baru. contoh: void pushHead(int nim, char nama[]) { struct tnode *node = (struct tnode *) malloc(sizeof(struct tnode)); node->nim = nim; strcpy(node->nama, nama); if(head == NULL) { head=tail=node; } else { node->next = head; head = node; } }//void untuk tambahin ke depan -Push belakang push belakang merupakan penyisipan di awal list, sehingga pointer head akan berpindah ke elemen baru. contoh: void pushTail(int nim, char nama[]) { struct tnode *node = (struct tnode *) malloc(sizeof(struct tnode)); node->nim = nim; strcpy(node->nama, nama); if(head == NULL) { head=tail=node; } else { tail->next = node; tail = node; tail->next = NULL...

Multiple Linked List

Multiple Linked List Multiple Linked List merupakan suatu linked list yang memiliki lebih dari dua variabel pointer. source:  http://alvinstrukturdata.blogspot.com/2016/01/apa-itu-linked-list.html