Tuesday, March 1, 2016

Data Structure, first assignment

D. S.
Array = static, homogen -> berurutan
Linklist = dynamic , hetero -> acak

array
A
B
C
D
E
0
1
2
3
4

Linklist à acak, bukan 01234 , yang paling pertama disebut head, paling akhir tail
                        Nama gak selalu head tail
Mal1(Head)




Mal3






Mal11






Mal6







Mal10



Mal2


Mal4








Mal8




Mal5











Mal9





Mal7








Mal12(Tail)




Access data, proses lebih lambat karena gak bisa llangsung akses ke Mal5 , harus dari head dulu.
Mal1..12 , type data semua int.

Operation of array
1.      Traversal -> ngasih nilai a[0] = a[10]
Transpose , bar to col
2.      Insertion -> scanf
3.      Search
4.      Delete
5.      Merging
6.      Sorting

Pointer –
*p = q , p nunjuk ke q
**r = *p :: double pointer à untuk nunjuk ke pointer
***s = **r
                        int *a, **b, x;
                        a = &x;
                        b = &a;
                        *b = 10;
Queue
Antrian à element yang masuk pertama yang diambil pertama
Add at the rear, remove at the front.

Queue dengan sistem array à
circular array













Array [0] front, array[16] rear
Front array[1]
Front array[2] , dst
Front array[16] , terakhir
Insert baru lagi di array[0]
Untuk link list , setelah tail adl head
Priority Queue – berdasarkan kebutuhan

Stack [anti queue]
LIFO , last in first out.







LINKED LIST

Structure

struct q
{
            int nim;
}

struct str_name
{
            struct q;
            int a;
            char name[100];
}

struct str_name
{...} a,b;
 Cara atas dan bawah sama
strname a,b;

ada nested struct.
Printf(“%s”,str_name.q.nim);

Dynamic memory allocation
int *px = (int *) malloc(sizeof(int));
char *pc = (char *) malloc(sizeof(char));
*px = 205;  //assign biasa
*pc = ‘A’;
println(*px,*pc);
free(px); //free menghapus memori
free(pc);

Array , int x[100]
User input 4,5,6 , alokasi 400 B

Linklist int x
User input 5,3,5,6 alokasi 16 B à sesuai kebutuhan

Membuat linklist

Struct{}

Declare *head;
Mallloc
Isi data
Link ke list
Printf(“%d”,head->next->next); print segment ke 3
Temp->next, menggeser var. Temp ke segment berikut.
                        Bisa menggunakan for untuk menggeser berkali2.
Ditulis dengan (*temp) ... //lihat di resource session 2


skyconnectiva.com
binus.ac.id

No comments:

Post a Comment