Posts

Final Review

Image
Nama : Raymond Andilsim NIM   : 2301906533 Nama Dosen:  (Kelas Besar) : Ferdinand Ariandy Luwinda (D4522) & Henry Chong (D4460) (Kelas Kecil) : Alexander ( D5319) Final Review Semester 2 : Linked List 1. Circular Single Linked List     Circular linked list adalah variasi dari linked list dimana setiap node tidak memiliki ruang NULL dan diganti oleh ruang untuk menunjuk node selanjutnya dan node paling terakhir akan menunjuk node yang pertama dan seterusnya, sehingga terbentuk sebuah siklus. 2. Double Linked List      Double Linked List adalah variasi dari linked list yang bisa bergerak bolak-balik dimana setiap node memiliki 3 ruang, perbedaan node pertama, node tengah dan node terakhir adalah di node pertama, di ruang pertama adalah NULL dan ruang ketiga untuk menunjuk node selanjutnya, untuk node di tengah, ruang pertama untuk menunjuk node sebelumnya dan ruang ketiga untuk menunjuk node selanjutnya, dan di node terakhir, ruang pertama untuk menunjuk node se

Heap and Tries

Image
Heap and Tries Heap          Heap adalah struktur data berbasis pohon khusus di mana pohon itu adalah pohon biner lengkap. Secara umum, tumpukan dapat terdiri dari dua jenis: Max-Heap: Dalam Max-Heap kunci yang ada di simpul akar harus paling besar di antara kunci yang                         ada di semua anak-anak itu. Properti yang sama harus benar secara rekursif untuk semua                         sub-pohon di Pohon Biner itu. Min-Heap: Dalam Min-Heap kunci yang ada di simpul akar harus minimum di antara kunci yang ada di                    semua anak-anak itu. Properti yang sama harus benar secara rekursif untuk semua sub-                            pohon di Pohon Biner itu. Insertion Suppose the Heap is a Max-Heap as: 10 / \ 5 3 / \ 2 4 The new element to be inserted is 15. Process : Step 1: Insert the new element at the end. 10 / \ 5 3 / \ / 2 4 15 Step 2 : Heapify the new element following bottom-up

AVL Tree

Image
AVL Tree Nama saya Raymond Andilsim, dan pada blog ini saya akan menulis rangkuman tentang AVL Tree. AVL Tree adalah subtipe dari Binary Search Tree. Pohon AVL memiliki properti penyeimbangan mandiri dinamis selain semua properti yang digunakan oleh Binary Search Tree. AVL Tree adalah sebuah upgrade dari Binary Search Tree. Tambahan/Upgraden dari BST adalah : BST memiliki aturan seperti : Setiap pohon memiliki root (di atas). Root memiliki nol, satu atau dua node anak. Setiap node memiliki nol, satu atau dua node anak, dan seterusnya. Setiap node memiliki hingga dua anak. Untuk setiap node, turunan/node kirinya lebih kecil dari node di atasnya, yang lebih kecil dari turunan kanan. Dan di AVL Tree terdapat tambahan yaitu p erbedaan antara kedalaman subtrees kanan dan kiri tidak boleh lebih dari satu. Untuk mengimplementasikan ini, implementasi AVL akan menyertakan algoritma untuk menyeimbangkan kembali pohon saat menambahkan elemen tambahan yaitu single rotation da

Application Code

Application Code Raymond Andilsim 2301906533 #include <stdio.h> #include <stdlib.h> #include <string.h> struct product{ char productName[31]; int qty; int price; struct product *next, *prev; } *head = NULL, *tail = NULL, *curr; void addProduct(char *productName, int qty){ curr = (struct product*)malloc(sizeof(struct product)); strcpy(curr->productName, productName); curr->qty = qty; curr->price = rand() % 1000000; if(curr->price == 0) curr->price = curr->price + 1000; else if(curr->price < 10) curr->price = curr->price * 1000; else if(curr->price < 100) curr->price = curr->price * 100; else if(curr->price < 1000) curr->price = curr->price * 10; curr->next = curr->prev = NULL; if(head == NULL){ head = tail = curr; } else if (strcmp(productName, head->productName) < 0){ curr->next = head; head->prev

Semester 2 Review / Summary

Image
Review / Summary Semester 2 1. Linked List Circular Single Linked List     Circular linked list adalah variasi dari linked list dimana setiap node tidak memiliki ruang NULL dan diganti oleh ruang untuk menunjuk node selanjutnya dan node paling terakhir akan menunjuk node yang pertama dan seterusnya, sehingga terbentuk sebuah siklus. Double Linked List      Double Linked List adalah variasi dari linked list yang bisa bergerak bolak-balik dimana setiap node memiliki 3 ruang, perbedaan node pertama, node tengah dan node terakhir adalah di node pertama, di ruang pertama adalah NULL dan ruang ketiga untuk menunjuk node selanjutnya, untuk node di tengah, ruang pertama untuk menunjuk node sebelumnya dan ruang ketiga untuk menunjuk node selanjutnya, dan di node terakhir, ruang pertama untuk menunjuk node sebelumnya dan ruang ketiga adalah NULL. Circular Doubly Linked List      Circular Doubly Linked List adalah linked list gabungan dari circular single linked list dan double l

Binary Search Tree

Image
BINARY SEARCH TREE Nama saya Raymond Andilsim, pada kesempataan kali ini saya akan membahas sedikit tentang binary search tree (BST). Binary tree adalah pohon khusus dimana disetiap node atau vertex bisa tidak memiliki cabang atau juga bisa memiliki 1 atau 2 cabang dan setiap cabang bisa bercabang lagi dan memiliki sifat yang sama. Binary tree digunakan untuk mewakili struktur data nonlinear. Pohon biner memiliki peran penting dalam software application dan salah satu hal paling penting dari Binary Tree adalah searching dalam algoritma. Algorithm void insert ( int data ) { struct node * tempNode = ( struct node *) malloc ( sizeof ( struct node )); struct node * current ; struct node * parent ; tempNode -> data = data ; tempNode -> leftChild = NULL ; tempNode -> rightChild = NULL ; //if tree is empty if ( root == NULL ) { root = tempNode ; } else { current = root ; parent = NULL