linkedlist tambahkan tengah




ini hanya untuk catatan pribadi saja :) sekaligus tugas kuliah :) karena pernah "bolos" dan disuruh bikin program pake c++ dengan  linkedlist tambahkan data ditengah :D
atau buat temen-temen yang mau coba silahkan :)
berikut ini saya sertakan contoh penulisan programnya 
linkedlist tambahkan tengah




void tambah_tengah(){
TNode *baru, *bantu;
int apa;
if(CakCek()==0){ //kalau data sudah terisi
cout<<"setelah data ke berapa yang ingin anda tambah? : "; cin>>apa;
bantu=head;
baru=new TNode;
for(int i=1;inext!=NULL)
bantu=bantu->next;
else break;
}
cout<<"Masukkan data "; cin>>baru->data;
baru->next=bantu->next;
bantu->next=baru;
bantu=baru;
}
else cout<<"Data masih kosong,gak bisa masukkan data tengah! "; }

Logikanya, kita membutuhkan dua variabel pointer yaitu baru dan bantu. Kemudian diawali dengan pemisalan if(CakCek()==0) yang berarti “jika data telah terisi” (fungsi CakCek() ini harus anda buat terlebih dahulu. Jika data telah terisi, maka kita harus menentukan setelah data ke berapa yang ingin dimasukkan? Misal setelah node ke 3 (node ke 4), maka kita membutuhkan pointer bantu yang dimasukkan nilai dari head. Ponter bantu ini harus kita geser sehingga menunjuk ke node 3, yang dapat dilakukan dengan pengulangan for. Setelah itu, kita tinggal mengisikan data.

ilustrasi:
Dari ilustrasi, maka variable awal dan akhir akan diisi dengan alamatbaru.

Proses penambahan data ketika linked list sudah mempunyai data.Ada 3 kondisi yang terjadi ketika akan melakukan proses penyisipan padalinked list yang sudah mempunyai data adalah :

Posisi penyisipan di luar dari jangkauan linked list (posisi kurang dari 1atau melebihi banyak data yang ada di linked list).Pada proses ini, jika terjadi posisi penyisipan kurang dari 1 maka prosesyang dilakukan adalah proses penambahan data di awal, dan jika posisi diluar (>) dari banyak data maka proses yang dilakukan adalah prosespenambahan data di akhir.
Posisi penyisipan di dalam jangkauan linked list.Contoh kalau ingin menyisipkan data pada posisi ke-3 (posisisisip=3).



Langkah selanjutnya cari posisi elemen sebelum posisi sisip kemudian simpan dalam suatu variabel dengan nama bantu.

Kemudian sambungkan field next dari Baru ke posisi next dari bantu
Kemudian pindahkan field next dari bantu ke posisi data baru.












semoga bermanfaat :)

terima kasih sumber

Post a Comment

0 Comments