list rekursif - core.ac.uk · danangwahyu utomo, m.kom, m.cs konten pendekatan iteratif dan...

68
DanangWahyu Utomo, M.Kom, M.CS LIST REKURSIF Danang Wahyu Utomo [email protected] +6285 740 955 623

Upload: vudiep

Post on 20-Mar-2019

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

LIST REKURSIF

Danang Wahyu Utomo

[email protected]

+6285 740 955 623

Page 2: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

RENCANA KEGIATAN PERKULIAHAN SEMESTER

W Pokok Bahasan

1 ADT Stack

2 ADT Queue

3 List Linear

4 List Linear

5 List Linear

6 Representasi Fisik List Linear

7 Variasi List Linear

8 UjianTengah Semester

W Pokok Bahasan

9 Variasi List Linear

10 Double Linked List

11 Stack dengan Representasi List

12 Queue dengan Representasi List

13 List Rekursif

14 Pohon dan Pohon Biner

15 Multi List

16 Ujian Akhir Semester

Page 3: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Konten

Pendekatan Iteratif dan Rekursif

Membalik List secara Iteratif

Fungsi Rekursif pada Memory

Membalik List secara Rekursif

Page 4: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Pendekatan Iteratif dan Rekursif

Pendekatan iteratif menggunakan proses perulangan(loop) untuk menyelesaikan masalah

Dalam konteks prosedural kita memiliki loop sebagaimekanisme untuk mengulang

Suatu entitas disebut rekursif jika pada definisinyaterkandung dirinya sendiri

Program prosedural juga dapat bersifat rekursif

Fungsi rekursif adalah fungsi yang memanggil dirinyasendiri

Page 5: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara Iteratif

Input

Output

10 200 8 300 14 400 7 Null

100 200 300 400

100

Head

10 Null 8 100 14 200 7 300

100 200 300 400

400

Head

Page 6: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara Iteratif

Diperlukan tiga variabel pointer :

- Current

membentuk link baru sekaligus memutus link sebelumnya

- Next

memindahkan pointer current ke node selanjutnya setelah link sebelumnya diputus

- Previous

menyimpan alamat node sebelumnya setelah link diputus

10 Null 8 300 14 400 7 Null

100 200 300 400

100

head

100prev

200curr

200next

Page 7: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara Iteratif

Diperlukan tiga variabel pointer :

- Current

membentuk link baru sekaligus memutus link sebelumnya

- Next

memindahkan pointer current ke node selanjutnya setelah link sebelumnya diputus

- Previous

menyimpan alamat node sebelumnya setelah link diputus

10 Null 8 300 14 400 7 Null

100 200 300 400

100

head

100prev

200curr

200next

Page 8: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara Iteratif

Diperlukan tiga variabel pointer :

- Current

membentuk link baru sekaligus memutus link sebelumnya

- Next

memindahkan pointer current ke node selanjutnya setelah link sebelumnya diputus

- Previous

menyimpan alamat node sebelumnya setelah link diputus

10 Null 8 100 14 400 7 Null

100 200 300 400

100

head

100prev

200curr

200next

Page 9: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara Iteratif

Fungsi membalik list secara iteratifvoid balikListIteratif(){

Node *curr, *prev, *next;

curr = head;

prev = NULL;

while(curr != NULL){

next = curr->next;

curr->next = prev;

prev = curr;

curr = next;

}

head = prev;

}

Page 10: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Fungsi Rekursif pada Memory

Memory yang dialokasikan pada sebuah program/aplikasiumumnya dibagi menjadi 4 bagian :

Heap /

Free Store

Bersifat Dinamis:

Ukuran memori dapat berubah ketika

program dijalankan

Stack Bersifat Statis:

• ukuran memori ditentukan ketika

kompilasi

• ukuran memori tidak dapat berubahStatic/Global

Code(Text)

Page 11: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Fungsi Rekursif pada Memory

Memory yang dialokasikan pada sebuah program/aplikasiumumnya dibagi menjadi 4 bagian :

Heap /

Free Store

Memori yang dapat di-request selama program

berjalan

Stack

Menyimpan semua informasi tentang

pemanggilan fungsi untuk menyimpan

semua variabel lokal

Static/Global Menyimpan variabel global selama program berjalan

Code(Text)Menyimpan semua perintah yang akan

dijalankan/dieksekusi

Page 12: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Fungsi Rekursif pada Memory

Stack memory dialokasikan ketikaterjadi pemanggilan fungsi tertentu

Nilai dan kondisi terakhir padapemanggilan fungsi tetap tersimpanpada stack memory

Fungsi baru akan ditumpuk (berjalan) diatas fungsi sebelumnya (sekaligusmenghentikan sementara eksekusifungsi sebelumnya) pada stack memory

Stack Memory

main ()

Page 13: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Fungsi Rekursif pada Memory

Stack memory dialokasikan ketika terjadipemanggilan fungsi tertentu

Nilai dan kondisi terakhir padapemanggilan fungsi tetap tersimpanpada stack memory

Fungsi baru akan ditumpuk (berjalan) diatas fungsi sebelumnya (sekaligusmenghentikan sementara eksekusifungsi sebelumnya) pada stack memory

Stack Memory

main ()

Fungsi_1(x)

Page 14: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Fungsi Rekursif pada Memory

Stack memory dialokasikan ketika terjadipemanggilan fungsi tertentu

Nilai dan kondisi terakhir padapemanggilan fungsi tetap tersimpanpada stack memory

Fungsi baru akan ditumpuk (berjalan) diatas fungsi sebelumnya (sekaligusmenghentikan sementara eksekusifungsi sebelumnya) pada stack memory

Stack Memory

main ()

Fungsi_1(x)

Fungsi_1(y)

Page 15: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Fungsi Rekursif pada Memory

Stack memory dialokasikan ketika terjadipemanggilan fungsi tertentu

Nilai dan kondisi terakhir padapemanggilan fungsi tetap tersimpanpada stack memory

Fungsi baru akan ditumpuk (berjalan) diatas fungsi sebelumnya (sekaligusmenghentikan sementara eksekusifungsi sebelumnya) pada stack memory

Jika fungsi pada tumpukan paling atasselesai dijalankan, fungsi pada tumpukandibawahnya akan dijalankan kembali

Stack Memory

main ()

Fungsi_1(x)

Fungsi_1(y)

Page 16: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara Rekursif

Input

Output

10 200 8 300 14 400 7 Null

100 200 300 400

100

Head

10 Null 8 100 14 200 7 300

100 200 300 400

400

Head

Page 17: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara Rekursif

Fungsi Membalik list secara Rekursif

void balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next); //rekursif

p->next->next = p;

p->next = NULL;

}

10 200

100

7 Null

400

8 300

200

14 400

300

head = 100

Page 18: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

Page 19: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

Page 20: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

Page 21: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

Page 22: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

Page 23: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

Page 24: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

Page 25: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

Page 26: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

Page 27: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

Page 28: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

Page 29: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

Page 30: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

Page 31: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

Page 32: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

balikRekursif()p = 400

Page 33: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

balikRekursif()p = 400

Page 34: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=100

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

balikRekursif()p = 400

Page 35: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

balikRekursif()p = 400

Page 36: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

balikRekursif()p = 400

head = 400

Page 37: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

head = 400

Page 38: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

head = 400

Page 39: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

head = 400

sudah dijalankan sebelumnya

Page 40: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

head = 400

sudah dijalankan sebelumnya

Page 41: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 Null

400

14 400

300

8 300

200

7 Null

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

head = 400

sudah dijalankan sebelumnya

Page 42: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 300

400

14 400

300

8 300

200

7

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

head = 400

sudah dijalankan sebelumnya

Page 43: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 300

400

14 400

300

8 300

200

7

400

14 400

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

head = 400

sudah dijalankan sebelumnya

Page 44: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 300

400

14 Null

300

8 300

200

7

400

14

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

head = 400

sudah dijalankan sebelumnya

Page 45: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 300

400

14 Null

300

8 300

200

7

400

14

300

balikRekursif()p = 100

balikRekursif()p = 200

balikRekursif()p = 300

head = 400

Page 46: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 300

400

14 Null

300

8 300

200

7

400

14

300

balikRekursif()p = 100

balikRekursif()p = 200

head = 400

Page 47: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 300

400

14 Null

300

8 300

200

7

400

14

300

balikRekursif()p = 100

balikRekursif()p = 200

head = 400

Page 48: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 300

400

14 Null

300

8 300

200

7

400

14

300

balikRekursif()p = 100

balikRekursif()p = 200

head = 400

sudah dijalankan sebelumnya

Page 49: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 300

400

14 Null

300

8 300

200

7

400

14

300

balikRekursif()p = 100

balikRekursif()p = 200

head = 400

sudah dijalankan sebelumnya

Page 50: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 300

400

14 Null

300

8 300

200

7

400

14

300

balikRekursif()p = 100

balikRekursif()p = 200

head = 400

sudah dijalankan sebelumnya

Page 51: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 300

400

14 200

300

8 300

200

7

400

14

300

balikRekursif()p = 100

balikRekursif()p = 200

head = 400

sudah dijalankan sebelumnya

Page 52: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 300

200

10 200

100main()

7 300

400

14 200

300

8 300

200

7

400

14

300

balikRekursif()p = 100

balikRekursif()p = 200

head = 400

sudah dijalankan sebelumnya

Page 53: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 Null

200

10 200

100main()

7 300

400

14 200

300

8

200

7

400

14

300

balikRekursif()p = 100

balikRekursif()p = 200

head = 400

sudah dijalankan sebelumnya

Page 54: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 Null

200

10 200

100main()

7 300

400

14 200

300

8

200

7

400

14

300

balikRekursif()p = 100

balikRekursif()p = 200

head = 400

sudah dijalankan sebelumnya

Page 55: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 Null

200

10 200

100main()

7 300

400

14 200

300

8

200

7

400

14

300

balikRekursif()p = 100

head = 400

Page 56: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 Null

200

10 200

100main()

7 300

400

14 200

300

8

200

7

400

14

300

balikRekursif()p = 100

head = 400

Page 57: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 Null

200

10 200

100main()

7 300

400

14 200

300

8

200

7

400

14

300

balikRekursif()p = 100

head = 400

sudah dijalankan sebelumnya

Page 58: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 Null

200

10 200

100main()

7 300

400

14 200

300

8

200

7

400

14

300

balikRekursif()p = 100

head = 400

sudah dijalankan sebelumnya

Page 59: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 Null

200

10 200

100main()

7 300

400

14 200

300

8

200

7

400

14

300

balikRekursif()p = 100

head = 400

sudah dijalankan sebelumnya

Page 60: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 100

200

10 200

100main()

7 300

400

14 200

300

8

200

7

400

14

300

balikRekursif()p = 100

head = 400

sudah dijalankan sebelumnya

Page 61: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 100

200

10 200

100main()

7 300

400

14 200

300

8

200

7

400

14

300

balikRekursif()p = 100

head = 400

sudah dijalankan sebelumnya

Page 62: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 100

200

10 Null

100main()

7 300

400

14 200

300

8

200

7

400

14

300

balikRekursif()p = 100

head = 400

sudah dijalankan sebelumnya

Page 63: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 100

200

10 Null

100main()

7 300

400

14 200

300

8

200

7

400

14

300

balikRekursif()p = 100

head = 400

sudah dijalankan sebelumnya

Page 64: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 100

200

10 Null

100main()

7 300

400

14 200

300

8

200

7

400

14

300

head = 400

Page 65: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 100

200

10 Null

100main()

7 300

400

14 200

300

8

200

7

400

14

300

head = 400

fungsi sudah dijalankan sebelumnya

Page 66: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 100

200

10 Null

100main()

7 300

400

14 200

300

8

200

7

400

14

300

head = 400

fungsi sudah dijalankan sebelumnya

Page 67: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

Stack Memory Heap Memory

8 100

200

10 Null

100main()

7 300

400

14 200

300

8

200

7

400

14

300

head = 400

Page 68: LIST REKURSIF - core.ac.uk · DanangWahyu Utomo, M.Kom, M.CS Konten Pendekatan Iteratif dan Rekursif Membalik List secara Iteratif Fungsi Rekursif pada Memory Membalik List secara

Danang Wahyu Utomo, M.Kom, M.CS

Membalik List secara RekursifFungsi membalik list secara Rekursifvoid balikRekursif (Node *p){

if(p->next == NULL){

head = p;

return;

}

balikRekursif(p->next);

p->next->next = p;

p->next = NULL;

}

void main(){

balikRekursif(head);//head=400

}

10 Null

100

7 300

400

8 100

200

14 200

300

head = 400