Selasa, 19 Mei 2020

Heap and Tries

Michael Albert Purnama
2301877716

Heap
Heap adalah complete binary tree (bukan binary search tree) yang mempunyai properties sebagai berikut:
  • Min Heap
    • Setiap node lebih kecil dari masing-masing childnya
    • Root merupakan node paling kecil, sedangkan node terbesar terletak pada leaf node


  • Max Heap
    • Setiap node lebih besar dari masing-masing childnya
    • Root merupakan node paling besar, sedangkan node terkecil terletak pada leaf node


Image result for Max Heap
  • Min-Max Heap
    • Heap dengan Min heap pada level ganjil dan Max heap pada level genap
Image result for Min max heap
TRIES

Tries (prefix tree) adalah ordered tree data structure yang digunakan untuk menyimpan array asosiatif (biasanya string)

TRIE berasal dari kata reTRIEval, karena TRIES dapat menemukan satu kata dalam kamus dengan hanya awalan kata.

Contoh TRIES : 



Jumat, 01 Mei 2020

AVL


Michael Albert Purnama
2301877716


AVL tree is a self-balancing Binary Search Tree (BST) where the difference between heights of left and right subtrees cannot be more than one for all nodes.


The above tree is AVL because differences between heights of left and right subtrees for every node is less than or equal to 1.

ini bukan AVL karena perbedaan tinggi di kiri dan kanannya lebih dari 1

Minggu, 05 April 2020

Summary

Michael Albert Purnama
2301877716

SUMMARY
Double linked list adalah struktur data di mana setiap node nya menyimpan link ke node berikutnya (seperti singly linked list) dan ke node sebelumnya juga dengan menggunakan pointer tambahan yang disebut previous pointer.

Pengoperasiannya  sama dengan operasi singly linked list: Insertion, Deletion, Traversal (kedua arah).

Keuntungan Doubly linked list dari pada singly linked list adalah :
1.Pointer tambahan (previous pointer) membuat doubly linked list dapat ditraversal di kedua arah.

2.Insert node pada posisi apa pun (sebelum dan sesudah node) dalam list.

3.Memberi pointer ke node yang akan didelete, penghapusan dalam doubly linked list lebih efisien daripada singly linked list.


4.Berfungsi sebagai antrian dan stack pada saat yang bersamaan.


Namun, ia memiliki beberapa kelemahan juga:

1.Setiap node membutuhkan ruang tambahan untuk previous pointer tambahan.

2.Previous pointer perlu dipertahankan selama pengoperasian.




Doubly Circular Linked List adalah linked list yang mana menggunakan pointer,

setiap node nya mempunyai 3 field, 1 field pointer yang menunjuk pointer berikutnya , 1 field menunjuk pointer sebelumnya (previous pointer), dan sebuah field yang berisi data untuk node tersebut.

Doubly Circular Linked List pointer next dan previous nya menunjuk ke dirinya sendiri secara circular.

Tiap node pada linked list mempunyai field yang berisi data dan pointer ke node berikutnya & ke node sebelumnya. Untuk pembentukan node baru, mulanya pointer next dan prev akan menunjuk ke dirinya sendiri. Jika sudah lebih dari satu node, maka pointer previous akan menunjuk ke node sebelumnya, dan pointer next akan menunjuk ke node sesudahnya. Doubly-linked list dapat diakses dengan dua arah, ke arah depan dan ke belakang.


Butuh dua variabel pointer yaitu head dan tail. Head adalah node pertama, sedangkan tail adalah node terakhir atau paling belakang.


Singly Circular Linked List adalah single linked list yang pointer selanjutnya menunjuk pada dirinya sendiri. Jika terdiri dari banyak node, pointer selanjutnya dari node paling belakang akan menunjuk pada node paling depan maka dari itu dinamakan circular karena berputar.


Linked List

  • PUSH
Push merupakan sebuah operasi insert dimana di dalam linked list terdapat 2 kemungkinan insert, yaitu insert melalui depan (push head) ataupun belakang (push tail). Operasi pushDepan berarti data yang paling baru dimasukkan akan berada di depan data lainnya, dan sebaliknya pushBelakang berarti data yang paling baru akan berada di belakang data lainnya.

1. Push Head
Bisa juga disebut dengan push depan ,
berfungsi untuk menambah data ke depan data yang paling depan.
push head: 4, 3, 7, 10 maka hasilnya adalah: 10 ->7 ->3 -> 4 -> NULL

     









2. Push Tail
Bisa juga disebut push belakang,
berfungsi untuk menambakan data di ekor data yang paling terakhir.
pushBelakang: 4, 3, 7, 10 maka hasilnya adalah: 4 ->3 ->7 ->10 -> NULL

3. Push Middle
Bisa juga disebut push tengah,
berfungsi untuk memasukkan data sesuai dengan index yang diminta
    














  • Binary Tree

Berbeda dari Array, Linked List, Stack dan Queue, yang merupakan struktur data linier, Tree adalah struktur data hierarkis.
Binary Tree adalah struktur data Tree di mana setiap node memiliki paling banyak dua anak, yang disebut sebagai anak kiri dan anak kanan. Ini diimplementasikan terutama menggunakan link.


  • Hashing Table

Hashing adalah Struktur Data penting yang dirancang untuk menggunakan fungsi khusus yang disebut Hash function yang digunakan untuk memetakan value yang diberikan dengan kunci tertentu untuk akses elemen yang lebih cepat.
Efisiensi pemetaan tergantung pada efisiensi hash function yang digunakan.

                                       

source = geeksforgeeks,google images

Minggu, 15 Maret 2020

Hashing and Binary Tree

Nama = Michael Albert Purnama
NIM = 2301877716
Kelas = LL 01


  • Binary Tree

Berbeda dari Array, Linked List, Stack dan Queue, yang merupakan struktur data linier, Tree adalah struktur data hierarkis.
Binary Tree adalah struktur data Tree di mana setiap node memiliki paling banyak dua anak, yang disebut sebagai anak kiri dan anak kanan. Ini diimplementasikan terutama menggunakan link.


  • Hashing Table

Hashing adalah Struktur Data penting yang dirancang untuk menggunakan fungsi khusus yang disebut Hash function yang digunakan untuk memetakan value yang diberikan dengan kunci tertentu untuk akses elemen yang lebih cepat.
Efisiensi pemetaan tergantung pada efisiensi hash function yang digunakan.

                                       

source = geeksforgeeks,google images

Senin, 09 Maret 2020

Linked List

Michael Albert Purnama
2301877716
CB01-CL / LL01

Linked List


  • PUSH
Push merupakan sebuah operasi insert dimana di dalam linked list terdapat 2 kemungkinan insert, yaitu insert melalui depan (push head) ataupun belakang (push tail). Operasi pushDepan berarti data yang paling baru dimasukkan akan berada di depan data lainnya, dan sebaliknya pushBelakang berarti data yang paling baru akan berada di belakang data lainnya.

1. Push Head
Bisa juga disebut dengan push depan ,
berfungsi untuk menambah data ke depan data yang paling depan.
push head: 4, 3, 7, 10 maka hasilnya adalah: 10 ->7 ->3 -> 4 -> NULL

     









2. Push Tail
Bisa juga disebut push belakang,
berfungsi untuk menambakan data di ekor data yang paling terakhir.
pushBelakang: 4, 3, 7, 10 maka hasilnya adalah: 4 ->3 ->7 ->10 -> NULL

3. Push Middle
Bisa juga disebut push tengah,
berfungsi untuk memasukkan data sesuai dengan index yang diminta
    















Selasa, 25 Februari 2020

Summary of learning Linked List


Nama : Michael Albert Purnama
NIM   : 2301877716
Mata Kuliah : Data Structure

Double linked list adalah struktur data di mana setiap node nya menyimpan link ke node berikutnya (seperti singly linked list) dan ke node sebelumnya juga dengan menggunakan pointer tambahan yang disebut previous pointer.

Pengoperasiannya  sama dengan operasi singly linked list: Insertion, Deletion, Traversal (kedua arah).

Keuntungan Doubly linked list dari pada singly linked list adalah :
1.Pointer tambahan (previous pointer) membuat doubly linked list dapat ditraversal di kedua arah.

2.Insert node pada posisi apa pun (sebelum dan sesudah node) dalam list.

3.Memberi pointer ke node yang akan didelete, penghapusan dalam doubly linked list lebih efisien daripada singly linked list.


4.Berfungsi sebagai antrian dan stack pada saat yang bersamaan.


Namun, ia memiliki beberapa kelemahan juga:

1.Setiap node membutuhkan ruang tambahan untuk previous pointer tambahan.

2.Previous pointer perlu dipertahankan selama pengoperasian.




Doubly Circular Linked List adalah linked list yang mana menggunakan pointer,

setiap node nya mempunyai 3 field, 1 field pointer yang menunjuk pointer berikutnya , 1 field menunjuk pointer sebelumnya (previous pointer), dan sebuah field yang berisi data untuk node tersebut.

Doubly Circular Linked List pointer next dan previous nya menunjuk ke dirinya sendiri secara circular.

Tiap node pada linked list mempunyai field yang berisi data dan pointer ke node berikutnya & ke node sebelumnya. Untuk pembentukan node baru, mulanya pointer next dan prev akan menunjuk ke dirinya sendiri. Jika sudah lebih dari satu node, maka pointer previous akan menunjuk ke node sebelumnya, dan pointer next akan menunjuk ke node sesudahnya. Doubly-linked list dapat diakses dengan dua arah, ke arah depan dan ke belakang.


Butuh dua variabel pointer yaitu head dan tail. Head adalah node pertama, sedangkan tail adalah node terakhir atau paling belakang.


Singly Circular Linked List adalah single linked list yang pointer selanjutnya menunjuk pada dirinya sendiri. Jika terdiri dari banyak node, pointer selanjutnya dari node paling belakang akan menunjuk pada node paling depan maka dari itu dinamakan circular karena berputar.