Download presentation
Presentation is loading. Please wait.
Published byJeremiah Maskell Modified over 9 years ago
1
Double Linked List Entin Martiana
2
Operasi Double Linked List Membangun Double Linked List dalam dua arah.Membaca list, dalam dua arah. Mencari simpul tertentu Menghapus simpul tertentu Menyisipkan sebagai simpul pertama Menyisipkan simpul di tengah
3
Double Linked List head 01234 tail
4
Deklarasi struct simpul { char nama[25]; int nrp; struct simpul *before; struct simpul *next; }; struct simpul *baru; nama nrp before simpul data pointer yg menunjuk simpul sebelumnya next pointer yg menunjuk simpul berikutnya
5
Membangun Linked List Apa yang harus dilakukan? 1.Deklarasi 2.Memory allocation 3.Mengisi data 4.Menyiapkan untuk dihubungkan dengan data baru berikutnya
6
Bagaimana? 1.struct simpul *baru; 2.baru=(struct simpul*)malloc(sizeof(struct simpul)); 3.printf("Nama:");scanf("%s",&baru->nama); 4.printf("NRP:");scanf("%d",&baru->nrp); 5.if(pertama) { baru->before=NULL; nama1 nrp1 before baru nama1 nrp1 before baru next NULL
7
Bagaimana? 1.struct simpul *baru; 2.baru=(struct simpul*)malloc(sizeof(struct simpul)); 3.printf("Nama:");scanf("%s",&baru->nama); 4.printf("NRP:");scanf("%d",&baru->nrp); 5.if(pertama) { baru->before=NULL; baru->next=NULL; nama1 nrp1 before NULL baru nama1 nrp1 before baru next NULL
8
Bagaimana? 1.struct simpul *baru; 2.baru=(struct simpul*)malloc(sizeof(struct simpul)); 3.printf("Nama:");scanf("%s",&baru->nama); 4.printf("NRP:");scanf("%d",&baru->nrp); 5.if(pertama) { baru->before=NULL; baru->next=NULL; head=baru; nama1 nrp1 before NULL head nama1 nrp1 before baru next NULL baru
9
Bagaimana? 1.struct simpul *baru; 2.baru=(struct simpul*)malloc(sizeof(struct simpul)); 3.printf("Nama:");scanf("%s",&baru->nama); 4.printf("NRP:");scanf("%d",&baru->nrp); 5.if(pertama) { baru->before=NULL; baru->next=NULL; head = baru; tail = baru; } nama1 nrp1 before NULL head nama1 nrp1 before baru next NULL baru tail
10
Selanjutnya 1.baru=(struct simpul*)malloc(sizeof(struct simpul)); 2.printf("Nama:");scanf("%s",&baru->nama); 3.printf("NRP:");scanf("%d",&baru->nrp); 4.if(bukanpertama) { baru->next=NULL; nama2 nrp2 before NULL baru nama1 nrp1 before head nama2 nrp2 before baru next NULL tail
11
Selanjutnya 1.baru=(struct simpul*)malloc(sizeof(struct simpul)); 2.printf("Nama:");scanf("%s",&baru->nama); 3.printf("NRP:");scanf("%d",&baru->nrp); 4.if(bukanpertama) { baru->next=NULL; tail->next=baru; nama2 nrp2 before NULL baru nama1 nrp1 before head nama2 nrp2 before baru next NULL tail
12
Selanjutnya 1.baru=(struct simpul*)malloc(sizeof(struct simpul)); 2.printf("Nama:");scanf("%s",&baru->nama); 3.printf("NRP:");scanf("%d",&baru->nrp); 4.if(bukanpertama) { baru->next=NULL; tail->next=baru; baru->before=tail; nama2 nrp2 before NULL baru nama1 nrp1 before head nama2 nrp2 before baru next NULL tail
13
Selanjutnya 1.baru=(struct simpul*)malloc(sizeof(struct simpul)); 2.printf("Nama:");scanf("%s",&baru->nama); 3.printf("NRP:");scanf("%d",&baru->nrp); 4.if(j<>0) { baru->next=NULL; tail->next=baru; baru->before=tail; tail=baru; } nama2 nrp2 before NULL tail nama1 nrp1 before head nama2 nrp2 before baru next NULL
14
Sampai iterasi keempat nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL
15
Membaca (FIFO) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL bacaFIFO = head; bacaFIFO
16
Membaca (FIFO) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL while (bacaFIFO!=NULL) // fungsi menampilkan bacaFIFO = bacaFIFO -> next; bacaFIFO
17
Membaca (FIFO) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL while (bacaFIFO!=NULL) // fungsi menampilkan bacaFIFO = bacaFIFO -> next; bacaFIFO
18
Membaca (FIFO) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL while (bacaFIFO!=NULL) // fungsi menampilkan bacaFIFO = bacaFIFO -> next; bacaFIFO
19
Membaca (FIFO) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL while (bacaFIFO<>NULL) // fungsi menampilkan bacaFIFO = bacaFIFO -> next; bacaFIFO
20
Membaca (LIFO) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL bacaLIFO = tail; bacaLIFO
21
Membaca (LIFO) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL while (bacaLIFO<>NULL) // fungsi menampilkan bacaLIFO = bacaLIFO -> before; bacaLIFO
22
Membaca (LIFO) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL while (bacaLIFO<>NULL) // fungsi menampilkan bacaLIFO = bacaLIFO -> before; bacaLIFO
23
Membaca (LIFO) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL while (bacaLIFO<>NULL) // fungsi menampilkan bacaLIFO = bacaLIFO -> before; bacaLIFO
24
Membaca (LIFO) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL while (bacaLIFO<>NULL) // fungsi menampilkan bacaLIFO = bacaLIFO -> before; bacaLIFO
25
Mencari Simpul Tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL cari = head; cari
26
Mencari Simpul Tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL while (cari->nama!=nama3) cari = cari -> next; cari
27
Mencari Simpul Tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL while (cari->nama!=nama3) cari = cari -> next; cari
28
Mencari Simpul Tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL while (cari->nama!=nama3) cari = cari -> next; cari
29
Menghapus Simpul Tertentu (Simpul Depan) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL cari = head; cari
30
Menghapus Simpul Tertentu (Simpul Depan) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL cari = head; if(cari->nama==nama1) head=head->next; cari
31
Menghapus Simpul Tertentu (Simpul Depan) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL cari = head; if(cari->nama==nama) head=head->next; head->before=NULL; cari NULL
32
Menghapus Simpul Tertentu (Simpul Depan) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL cari = head; if(cari->nama==nama) head=head->next; head->before=NULL; free(cari); cari NULL
33
Menghapus Simpul Tertentu (Simpul Depan) nama4 nrp4 before NULL tail head next nama2 nrp2 before next nama3 nrp3 before next cari = head; if(cari->nama==nama) head=head->next; head->before=NULL; free(cari); NULL
34
Menghapus Simpul Tertentu (Simpul Akhir) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL cari=tail; cari
35
Menghapus Simpul Tertentu (Simpul Akhir) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL tail=tail->before; cari
36
Menghapus Simpul Tertentu (Simpul Akhir) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL tail=tail->before; tail->next=NULL; cari
37
Menghapus Simpul Tertentu (Simpul Akhir) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL tail=tail->before; tail->next=NULL; free(cari); cari
38
Menghapus Simpul Tertentu (Simpul Akhir) NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL
39
Menghapus Simpul Tertentu (Di Tengah) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL cari=head; cari
40
Menghapus Simpul Tertentu (Di Tengah) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL while (cari->nama!=nama3) cari = cari -> next; cari
41
Menghapus Simpul Tertentu (Di Tengah) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL while (cari->nama!=nama3) cari = cari -> next; cari
42
Menghapus Simpul Tertentu (Di Tengah) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL while (cari->nama!=nama3) cari = cari -> next; cari
43
Menghapus Simpul Tertentu (Di Tengah) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL cari->before->next=cari->next; cari
44
Menghapus Simpul Tertentu (Di Tengah) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL cari->next->before=cari->before; cari
45
Menghapus Simpul Tertentu (Di Tengah) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL free(cari); cari
46
Menghapus Simpul Tertentu (Di Tengah) nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next NULL
47
atau nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL while (cari->nama!=nama3) cari = cari -> next; sbl=cari->before; stl=cari->next; cari sbl stl
48
Menghapus Simpul Tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL sbl->next=stl; cari sbl stl
49
Menghapus Simpul Tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL sbl->next=stl; stl->before=sbl; cari sbl stl
50
Menghapus Simpul Tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next NULL cari->before->next = cari->next; cari->next->before = cari->before; free(cari);
51
Menyisipkan sebagai simpul pertama nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL namax nrpx before sisip next
52
Menyisipkan sebagai simpul pertama nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL namax nrpx before sisip next sisip->before=NULL; NULL
53
Menyisipkan sebagai simpul pertama nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL namax nrpx before sisip next sisip->next=head; NULL
54
Menyisipkan sebagai simpul pertama nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next namax nrpx before sisip next head->before=sisip; NULL
55
Menyisipkan sebagai simpul pertama nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next namax nrpx before sisip next head=sisip; NULL
56
Menyisipkan stl. simpul tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL namax nrpx before sisip next
57
Menyisipkan stl. simpul tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL namax nrpx before sisip next stl=head; while(stl->nama!=nama3) stl=stl->next; stl
58
Menyisipkan stl. simpul tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL namax nrpx before sisip next sisip->before=stl; stl
59
Menyisipkan stl. simpul tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL namax nrpx before sisip next sisip->before=stl; sisip->next=stl->next; stl
60
Menyisipkan stl. simpul tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL namax nrpx before sisip next sisip->before=stl; sisip->next=stl->next; stl->next->before=sisip; stl
61
Menyisipkan stl. simpul tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL namax nrpx before sisip next sisip->before=stl; sisip->next=stl->next; stl->next->before=sisip; stl->next=sisip; stl
62
Menyisipkan sbl. simpul tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL namax nrpx before sisip next
63
Menyisipkan sbl. simpul tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL namax nrpx before sisip next sbl=head; while(sbl->nama!=nama3) sbl=sbl->next; sbl
64
Menyisipkan sbl. simpul tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL namax nrpx before sisip next sisip->next=sbl; sbl
65
Menyisipkan sbl. simpul tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL namax nrpx before sisip next sisip->next=sbl; sisip->before=sbl->before; sbl
66
Menyisipkan sbl. simpul tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL namax nrpx before sisip next sisip->next=sbl; sisip->before=sbl->before; sbl->before->next=sisip; sbl
67
Menyisipkan sbl. simpul tertentu nama4 nrp4 before NULL tail nama1 nrp1 before head next nama2 nrp2 before next nama3 nrp3 before next NULL namax nrpx before sisip next sisip->next=sbl; sisip->before=sbl->before; sbl->before->next=sisip; sbl->before=sisip; sbl
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.