Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Linked List Entin Martiana. Malloc Memory Allocation (malloc) adalah sebuah fungsi fasilitas untuk memesan tempat secara berurutan untuk tipe data dinamis(pointer)

Presentasi serupa


Presentasi berjudul: "Linked List Entin Martiana. Malloc Memory Allocation (malloc) adalah sebuah fungsi fasilitas untuk memesan tempat secara berurutan untuk tipe data dinamis(pointer)"— Transcript presentasi:

1 Linked List Entin Martiana

2 Malloc Memory Allocation (malloc) adalah sebuah fungsi fasilitas untuk memesan tempat secara berurutan untuk tipe data dinamis(pointer) Nilai balik dari memory allocation adalah void *

3 Problem Bagaimana jika kita pesan alamat berurutan? –Akan selalu gagal. –Untuk itu kita lakukan memory allocation untuk setiap satu data. Bagaimana agar data pertama tetap berhubungan dengan data kedua? –Kita gunakan pointer untuk menghubungkan

4 The Linked List data structure [0][1][2] array ABC Array linked ABC Linked list Linked lists are unbounded (maximum number of items limited only by memory) node

5 Array vs Linked List Linked lists are unbounded (maximum number of items limited only by memory) Array : int A[3]Linked List : struct list *A; A[2] A[1] A[0] A(data 3) A(data 2) A(data 1)

6 Deklarasi struct simpul { char nama[25]; int nrp; struct simpul *next; }; struct simpul *ujung; nama nrp next simpul data pointer yg menunjuk simpul lain

7 Membangun Linked List Apa yang harus dilakukan? 1.Deklarasi 2.Memory allocation 3.Mengisi data 4.Menyiapkan untuk dihubungkan dengan data baru berikutnya

8 Bagaimana? 1.struct simpul *ujung; 2.ujung=(struct simpul*)malloc(sizeof(struct simpul)); 3.printf("Nama:");scanf("%s",&ujung->nama); 4.printf("NRP:");scanf("%d",&ujung->nrp); 5.if(j==0) { ujung->next=NULL; tampung=ujung; } nama1 nrp1 next ujung tampung NULL

9 Selanjutnya 1.ujung=(struct simpul*)malloc(sizeof(struct simpul)); 2.printf("Nama:");scanf("%s",&ujung->nama); 3.printf("NRP:");scanf("%d",&ujung->nrp); 4.if(j<>0) { ujung->next=tampung; tampung=ujung; } nama2 nrp2 next ujung nama1 nrp1 next NULL tampung nama2 nrp2 next ujung tampung

10 Selanjutnya 1.ujung=(struct dtnilai*)malloc(sizeof(struct dtnilai)); 2.printf("Nama:");scanf("%s",&ujung->nama); 3.printf("NRP:");scanf("%d",&ujung->nrp); 4.if(j<>0) { ujung->next=tampung; tampung=ujung; } nama3 nrp3 next ujung nama1 nrp1 next NULL tampung nama2 nrp2 next nama3 nrp3 next ujung tampung

11 Sampai iterasi keempat nama1 nrp1 next NULL tampung nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung

12 Membaca (Menampilkan) nama1 nrp1 next NULL tampil nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung tampil = ujung; while (tampil<>NULL) // fungsi menampilkan tampil = tampil -> next; tampil

13 Mencari simpul ttt. nama1 nrp1 next NULL cari nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung cari = ujung; while (cari->nama!=nama2) { cari = cari->next; } cari

14 Menyisipkan sebagai simpul terakhir nama1 nrp1 next cari nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung cari = ujung while (cari->next !=NULL) cari = cari->next; cari->next=baru; namax nrpx next baru NULL cari NULL

15 Menghapus simpul ttt. nama1 nrp1 next NULL hapus nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung hapus = ujung;

16 Menghapus simpul ttt. nama1 nrp1 next NULL hapus nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung while (hapus->nama != nama2) { sbl = hapus; hapus=hapus->next; }

17 Menghapus simpul ttt. nama1 nrp1 next NULL hapus nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung while (hapus->nama != nama2) { sbl=hapus; hapus=hapus->next; } sbl

18 Menghapus simpul ttt. nama1 nrp1 next NULL hapus nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung while (hapus->nama != nama2) { sbl=hapus; hapus=hapus->next; } sbl

19 Menghapus simpul ttt. nama1 nrp1 next NULL hapus nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung sbl->next=hapus->next; sbl

20 Menghapus simpul ttt. nama1 nrp1 next NULL nama3 nrp3 next nama4 nrp4 next ujung free(hapus); sbl

21 Menyisipkan setelah simpul ttt. nama1 nrp1 next NULL cari nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung cari = ujung namax nrpx next baru

22 Menyisipkan setelah simpul ttt. nama1 nrp1 next NULL cari nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung while (cari->nama!=nama3) cari = cari->next ; baru->next = cari->next; namax nrpx next baru

23 Menyisipkan setelah simpul ttt. nama1 nrp1 next NULL cari nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung cari->next = baru; namax nrpx next baru

24 Menyisipkan sebelum simpul ttt. nama1 nrp1 next NULL cari nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung cari = ujung namax nrpx next baru

25 Menyisipkan sebelum simpul ttt. nama1 nrp1 next NULL stl nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung cari = ujung; while (cari->nama!=nama1) stl=cari; cari=cari->next; namax nrpx next baru cari

26 Menyisipkan sebelum simpul ttt. nama1 nrp1 next NULL stl nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung cari = ujung; while (cari->nama!=nama1) stl=cari; cari=cari->next; namax nrpx next baru cari

27 Menyisipkan sebelum simpul ttt. nama1 nrp1 next NULL stl nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung cari = ujung; while (cari->nama!=nama1) stl=cari; cari=cari->next; namax nrpx next baru cari

28 Menyisipkan sebelum simpul ttt. nama1 nrp1 next NULL stl nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung baru->next = cari; namax nrpx next baru cari

29 Menyisipkan sebelum simpul ttt. nama1 nrp1 next NULL stl nama2 nrp2 next nama3 nrp3 next nama4 nrp4 next ujung stl->next = baru; namax nrpx next baru cari


Download ppt "Linked List Entin Martiana. Malloc Memory Allocation (malloc) adalah sebuah fungsi fasilitas untuk memesan tempat secara berurutan untuk tipe data dinamis(pointer)"

Presentasi serupa


Iklan oleh Google