D. S.
Array = static, homogen -> berurutan
Linklist = dynamic , hetero -> acak
array
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