Sunday, March 23, 2014

Tree & Binary Tree

I. Tree Concept





II. Binary Tree concept

parent punya 2 anak
















Beda Binary Tree dan Binary Search Tree






Boleh memasukan angka berapa pun secara acak







B -> harus lebih kecil dari A
C-> harus lebih besar dari A












III. Type of Binary Tree


Perfect Binary Tree
>di paling bawah full
>tiap level jumlahnya sama










Complete Binary Tree
> Bawahnya tidak full  

















IV. Expresion Tree Concept


prefix : * + ab /- cde    --> tanda di depan
postfix : ab + cd - e /*  --> tanda di belakang
infix : (a+b)*((c-d)/e)    --> tanda di tengah

contoh 1 :
2 + a + (b/2) * 3
prefix = + 2 + a / b 2 3
postfix = 2 ab 2/3 * ++

contoh 2:
3 / (a +b) -2
prefix = - / 3 + ab 2
postfix = 3 ab + / 2


bedanya graph dan tree


graph : ujung tersambung







Tree : ada yang digantung










V. Menggambar Tree

c / a * 2 + 3 / 12 + 21



cara untuk mengecek :
infix     : L V R
postfix : L R V
prefix   : V L R














Sunday, March 16, 2014

Algoritma dan Struktur Data Pemograman
by : Okky Pribadi, S.Kom

Perbedaan Array dan Linked List

Array :
- Statis
- Penambahan dan penghapusan data terbatas
- Random Access
- Penghapusan Array Tidak Mungkin

Linked List :
- Dinamis
- Penambahn dan penghapusan data tidak terbatas
- Sequential Access
- Penghapusan mudah

contoh :
Array :
char nama[5]
[o] [k] [k] [y] []

Linked List :
[o|] [k|] [k|] [y|] [null|]


Algoritma?
> Berasal dari kata Algorism yang berati proses menghitung dengan angka arab
> Algoritma adalah urutan langkah - langkah logis penyelesaian masalah yang disusun secara sistematis dan logis

Bedanya Algo & Program 
> Program : Algoritma + bahasa (struktur data)
>Algoritma  dapat diterjemahkan di berbagai bahasa pemograman





senin , 10 maret 2014


Friday, March 7, 2014

Linked List Implementation I

Linked list ada 3 jenis :
> Single LL 
    ----> <----

>Double LL
  ---->
 <----

>Multiple LL
*panahnya kesegala arah






selain itu ada jenis lain..
> Circular single Lingked list                                                       











>double















ex:
struct Mahasiswa *curr;
*cur =(struct Mahasiswa *)malloc(sizeof(struct carts));
strcpy(curr->nama,nama)
curr->next = head
head=char

malloc disini fungsinya untuk mengembalikan data void bintang
sedangkan struct disiini agar dapat sesuai dengan isi struct.

Single LL
- Push Depan
- Push Tengah
- Push Belakang

Push depan
head = curr = tail = null

if(head == null){
  head = tail = curr;
  tail -> next = null;
}else{
  curr->next = head;
  head = curr;
}

*note : pada saat pertama bikin, current selalu ada di data baru
buat kodingan head selalu di depan dan tail selalu dibelakangan.

Push belakang
h = t = c =null

if(head == null)[
  head = tail = curr;
}else{
  tail -> next = curr;
  tail = curr;
{ tail-> next = null;
  tail = curr;
}
 tail-> next = null;



ada juga pop.. digunakan untuk menghapus atau delete

pop depan
 if(head == tail){
        head = tail = NULL;
        free(curr);
    }else{
        //2
        head = head->next;
        //3
        free(curr);
    }
    

Pop belakang
 if(head == tail){
        head = tail = NULL;
        free(curr);
    }else{
        //2
        while(curr->next != tail){
            curr=curr->next;
        }
        //3
        tail = curr;
        //4
        free(curr->next);
        //5
        tail->next = NULL;
    }


sumber
http://strukturdata-asb.blogspot.com/

www.binus.edu
SkyConnectiva
Angela Ekarizky Aprilla Nugraheni

hope you enjoy :)