Posts

Showing posts from March, 2020

BinarySearchTree

Binary Search Tree Binary Search Tree adalah salah satu struktur data yang membantu pencarian, sorting lebih cepat. Serta penyisipan dan penghapusan yang mudah. Unruk node BST, bagian sub tree kiri  x berisi elemen yang lebih kecil daripada yang disimpan dalam x. Unuk baagian sub tree kanan x berisi elemen yang lebih besar daripada yang disimpan di dalam x. Operasi-operasi yang dapat digunakan di dalam BST - Create : Membentuk binary tree - Clear : Mengosongkan binary tree - Insert : Memasukkan sebuah node ke dalam tree - Find : Mencari suatu node - Update : Memperbarui isi dari node Insert BST  = Penyisipan sebuah node baru, didahului dengan operasi pencarian posisi yang sesuai. Dalam hal ini, node baru tersebut akan menjadi leaf. Delete BST = Operasi delete memiliki 3 kemungkinan : -   Delete terhadap node tanpa anak/child (leaf/daun) : node dapat langsung dihapus -       Delete terhadap node dengan satu anak/child : m...

Hash and binary tree

Hashing and Hash Tables, Trees & Binary Tree   Hashing and Hash Table Tabel hash adalah tabel tempat kita menyimpan string asli. Indeks tabel adalah kunci hash, sementara nilainya adalah string asli. Ukuran tabel hash biasanya beberapa kali lipat lebih rendah dari jumlah total string yang mungkin Jadi, beberapa string mungkin memiliki kunci yang sama. Contoh : kita mempunyai 3 string dengan isi "nama","jurusan",dan "idsiswa" dengan size 20. Maka, fungsi hash yang akan kita gunakan adalah mengubah karakter pertama dari setiap string menjadi angka antara 0..19. h[ ] Value 0 idsiswa 1 2 jurusan 3 4 nama sampai size 19 maka, idsiswa disimpan di h[0] karena i terdapat di index 0. jurusan disimpan di h[2] karena j terdapat di index 2, dan seterusnya. Fungsi Hash yang biasa digunakan :  1. Division Secara umum, rumusnya h(k)= k mod m. Dalam hal ini m adalah j...

STACK AND QUEUE

Stack dan Queue Stack adalah struktur data penting yang menyimpan elemen-elemennya secara teratur. Data disimpan di Last In First Out(LIFO). Stack bisa diimplementasikan dengan menggunakan array atau linked list. Operasi-operasi pada stack dengan Single Linked List : Push = yaitu memasukkan elemen baru ke dalam stack         Contoh penggunaan operasi Push :  void pushHead(char name[]){ current = (struct book *)malloc(sizeof book); strcpy(current->studentname, name); current->next = current->prev = NULL; if(head==NULL){ head=tail=current; }else{ head->prev=current; current->next=head; head=current; } Pop  =  yaitu menghapus elemen teratas dari stack         Contoh penggunaan operasi Pop :  void popHead(){ if(head==NULL){ printf("No Data"); }else if(head==tail){ current=head; head=tail=NULL; free(current); }else{ current=head; head=head->next; head->prev=NULL; fre...

GSLC

Data Structure GSLC Linked list adalah stuktur data linier dimana adalah koleksi data element juga dikenal sebagai  nodes  dan dapat memiliki variasi ukuran/sizes. biasanya, item/barang yang terdaftar terkoneksi melalui   pointer dimana diketahui sebagai   link   dan dikurung ini disebut sebagai   linked list . Biasanya terdapat istilah head dan tail. Head = elemen yang berada pada posisi pertama dalam suatu linked list Tail = elemen yang berada pada posisi terakhir dalam suatu linked list Macam- macam linked list : 1. Single Linked List 2. Double Linked List 3. Circular Linked List 4. Multiple 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. Biasanya field pada tail menunjuk ke null. contoh kodingannya : Struct Students{      char nama[100];      char nim[100];     ...