Minggu, 19 November 2017

Cara Kerja Double Link List










Gambar diatas merupakan pseudocode untuk menginput data ke dalam alamat memori ke-n. Misal di dalam sebuah linked list terdapat 5 buah data diantaranya : A, B, C, E, dan F. kemudian akan di masukkan data baru berupa D yang akann di masukkan ke dalam alamat memorri dengan indeks ke-4. Data di dalam linked list akan terlihat seperti gambar di bawah ini.



Hal pertama yang akan di jalankan oleh program ini adalah menentukan nilai dari variable Head, X dan N. variable Head di isi dengan data yang memiliki pointer prev nya bernilai 0, di dalam gambar diatas, Head akan di isi dengan A. Sedangkan variable X di isi dengan D, sebagai data baru. Dan terakhir variable N di isi dengan alamat memori yang akan di tuju, di dalam contoh ini saya mengisikan N = 4.



Perintah malloc(temp) akan menambahkan  alamat memori baru pada linked list, seperti yang tergambar di dalam table diatas.





Setelah itu data D di masukkan kedalam linked list, tetapi masih belum memiliki pointer next dan prev, seperti gambar diatas.

Selanjutnya adalah menentukan pointer dari data D, dengan menggunakan perintah FindK(Head, N-1, P). Program akan memeriksa apakah ada data yang tersimpan sebelumnya dengan cara mencari pointer dari indeks sebelumnya dari data D, karena data di letakkan di indeks ke 4, maka program akan memeriksa pointer di indeks ke 3, yaitu data C. Jika pointer nya tidak di temukan atau bernilai NULL, maka program akan memberi tahu tentang tidak ada nya data di dalam lined list dan menghapus alokasi memori dan data D .



Tetapi jika terdapat pointer pada indeks ke 3, program akan menyimpan alamat memori dari indeks ke 5, yaitu data E sebagai pointer next dari data D. Kemudian, program menyimpan alamat memori dari data ke 3, yaitu data C sebagai pointer prev dari data D.





Selanjutnya adalah mengubah pointer next dari data C dan pointer prev dari data  E yang masih menunjukkan alamat memori yang lama, menjadi alamat memori yang baru yaitu, alamat memori dengan indeks ke 6, seperti gambar di atas. Sehingga data nya terlihat seperti gambar di bawah ini.


Tidak ada komentar:

Posting Komentar