Tuesday, March 27, 2018

5 - Binary Search Tree - 2101641910 - Gary Nico

Nama : Gary Nico
NIM : 2101641910

Binary tree adalah sebuah tree yang masimal anaknya dua.

Image result for contoh binary tree
Binary tree karena setiap node mempunyai maksimal 2 anak.

Apa perbedaan Graph dengan binary tree? 
- Graph boleh looping, binary tree tidak boleh

Binary search tree (BST) bisa digunakan dengan syarat harus binary tree.

Method:
1. Tentukan root
2. Jika nilai lebih kecil dari root, tambahkan ke subtree kiri
3. Selain itu tinggal ditulis

Jika ada angka {8,3,10,1,6,14,47,13} ->
1. Tentukan 8 menjadi root
2. 3 lebih kecil dari 8, maka taruh di kiri
3. 10 lebih besar dari 3, maka taruh di kiri
4. Begitu seterusnya...

Image result for 8,3,10,1,6,14,4 binary tree


Tree Traversal

1. In Order (Left-Root-Kanan)

2. Pre Order (Root-Kiri-Kanan)

3. Post Order (Kiri-Kanan-Root)

Tuesday, March 13, 2018

4 - Linked List Implementation 2 - 2101641910 - Gary Nico

Nama : Gary Nico
NIM : 2101641910

1. Stack -> tumpukan objek.  Prinsipnya adalah LIFO (Last In First Out) atau FILO (First In Last Out).
Top adalah obyek paling atas di stack.
Jika TOP adalah NULL berarti stack kosong.
Jika TOP = Max-1, berarti stack penuh. (array mulai dari 0)

Image result for stack 
Push = menaruh obyek di tumpukan paling atas
Pop = mendelete obyek di tumpukan paling atas

2. Queues -> antrian obyek. Prinsipnya adalah FIFO (First In First Out) dan LILO (Last In Last Out)
Image result for queue
Front = obyek yang dihapus duluan kalo di pop (dequeue).
Back = obyek yang dimasukin kalo di push (enqueue).

3. Infix dan Prefix -> 
 Image result for infix dan prefix
4. DFS & BFS -> 
DFS adalah Deep First Search atau search ke bawah/dalam dulu
BFS adalah Breadth First Search atau search menyamping dulu

Image result for dfs and bfs

Tuesday, February 27, 2018

3 - Linked List Implementation I - 2101641910 - Gary Nico

Nama : Gary Nico
NIM : 2101641910


Linked List ada 3 macam yaitu :

1. Single Linked List -> tipe yang paling simpel, setiap node punya satu penghubung/pointer ke node lain. Hanya mempunyai satu arah.


Image result for singly linked list




Operasi pada single linked list :

1. Push -> ada tiga kemungkinan insert node baru di depan, dibelakang dan ditengah.

- Push depan : node baru di paling depan(head)

- Push belakang : node baru di paling belakang(tail)


- Push tengah : node baru ditengah

2. Pop -> merupakan operasi delete. Bisa di delete di paling depan(head), di paling belakang(tail) dan ditengah.

- Pop depan :


- Pop belakang:



- Pop tengah

2. Circular Single Linked List -> node terakhir menunjuk ke node pertama sehingga tidak ada NULL


Image result for Circular Single Linked List


3. Doubly Linked List -> ada dua arah pada node yaitu previous dan next
Image result for Doubly Linked List


4. Circular Doubly Linked List -> mirip circular single linked list tapi tiap node memppunyai dua arah dan node terakhir nyambung dengan node awal

Image result for Circular Doubly Linked List

5. Header Linked List -> node ekstra ( header node ) di paling depan, biasanya untuk menandakan kategori

Image result for Header Linked List

Tuesday, February 20, 2018

1&2 - Pointer, Array and Introduction to Data Structure and Linked List - 2101641910 - Gary Nico

Nama : Gary Nico
NIM : 2101641910

Array

Array merupakan sebuah kumpulan elemen data yang mirip. Elemen pada array memiliki tipe data yang sama atau homogen. Elemen pada array disimpan dalam memory locations yang berurutan. Elemen pertama biasanya disebut indeks ke-0. Adapun isi dari array dapat diases secara langsung.

contoh: int arr[5] -> indeks array 0-4
             char string[10] -> array of char

indeks ke 5 adalah NULL.

3 jenis array:

1. Array satu dimensi : seperti contoh tadi yaitu int arr[5] dan char string[10]

2. Array dua dimensi : int arr[10][5] dan char string[10][10]
3. Array multidimensi : jumlah array yang digunakan lebih dari dua dan tidak terbatas jumlah maksimalnya. int arr[10][10][10][5] dan char string[10][10][10][10]

Operasi yang bisa dilakukan pada array adalah:

- Traversal ( passing nilai )

- Insertion ( memasukkan )
- Searching ( mencari )
- Deletion ( menghapus )
- Merging ( menggabungkan )
- Sorting ( mengurutkan )

Pointer

Pointer adalah sebuah variabel yang menyimpan alamat dari variabel lain.

int  x=5;
int *ptr;
ptr = &x; ( untuk mengambil alamat )
*ptr = 5 ( untuk mengambil isi dari variabel yang dituju )

Data Structure

Data Structure adalah susunan dari data.

Tipe-tipe struktur data :
- Array                  - Stacks
- Queues               - Linked List
- Binary Trees

Queue -> FIFO ( First In First Out )
terbagi menjadi tiga : Queue biasa, Circular Queue, Priority Queue

Stack -> LIFO ( Last In First Out ) 
seperti tumpukan piring

Linked List -> suatu variabel yang saling berikatan ( ada pengikat antara satu dengan yang lain ), addressnya bisa tidak bersebelahan (acak), bisa diakses menggunakan head juka single linked list, atau head maupun tail jika double linked list.

Linked list ada:
- Single Linked List
- Double Linked List
- Multiple Linked List
- Polynomial Linked List

Pengikat Linked List :
- Single Linked List = hanya mempunyai next
- Double Linked List = mempunyai next dan previous

Binary Tree adalah struktur seperti pohon. Di dalamnya terdapat banyak elemen yang disebut nodes.
Setiap nodes ada pointer kiri, pointer kanan dan elemen.
Bagian paling atas disebut root, bentuknya selalu kebawah.

Jika biner maka maksimal cabang adalah 2.

Introduction to Linked List

Linked List adalah koleksi linear dari data yang dinamakan nodes. Dimana setiap node akan menunjuk ke node lain menggunakan pointer. Node bisa dihapus atau ditambah sesuai keinginan. 


Image result for linked list



Head menunjuk pada node pertama dan node terakhir menunjuk kepada NULL. Linked List yang memiliki satu penghubung antara nodes disebut Single Linked List. Linked List yang hanya mempunyai NULL disebut kosong.

5 - Binary Search Tree - 2101641910 - Gary Nico

Nama : Gary Nico NIM : 2101641910 Binary tree adalah sebuah tree yang masimal anaknya dua. Binary tree karena setiap node mempunyai ...