Linked list adalah kumpulan item yang disebut nodes, yang terdiri dari information field dan next address field. Information field berisi satu elemen dari list, sedangkan next address field berisi alamat dari node berikutnya.
Create Node merupakan fuction yang isinya untuk mengisi lingked list, dengan cara input node pertama atau dapat disebut head. Misalnya 5, berarti head -> data = 5, karena ini Node awal jadi tidak ada Node berikutnya, sehingga dapat ditulis head -> next = NULL. Head yang sudah diinput akan ditampung didalam temp untuk proses looping.
Push Head / Menambahkan Node di Depan
Data A merupakan Node awal, karena listnya masih kosong, maka data A akan menjadi Head dan Tail. Yang dapat ditulis :
if (head==NULL){
head = tail = newnode;
}
Untuk menambahkan node baru diawal adalah dengan cara, node baru -> next node lama , lalu awal_ptr diganti dengan node yang baru.
if(awal_ptr == NULL)
{
awal_ptr=baru;
awal_ptr->next = NULL;
}
else
{
baru->next = awal_ptr;
awal_ptr = baru;
}
Menambahkan Node di Tengah
Proses penyisipan di tengah berarti proses penyisipan pada posisi tertentu.
Data E merupakan Node baru yang ingin dimasukkan menggantikan ke posisi C.
Carilah posisi yang merupakan posisi sebelum posisi penyisipan, yaitu B. Setelah itu
diberikan nama bantu, lalu sambungkan field next dari baru ke posisi next dari bantu.
Setelah itu pindahkan field next dari baru ke data baru
if(awal_ptr != NULL)
{
cout<<"Akan disisip setelah Data Ke ? : "; cin>>posisi_sisip;
bantu=awal_ptr;
baru =new node;
for(int i=1;i<posisi_sisip-1;i++)
{
if(bantu->next != NULL)
bantu=bantu->next;
else
break;
}
cout << "Masukkan Nama : "; cin >> baru->nama;
cout << "Masukkan Umur : "; cin >> baru->umur;
cout << "Masukkan tingggi : "; cin >> baru->tinggi;
baru->next=bantu->next;
bantu->next=baru;
}
else
{ cout<<"Belum ada data !! silahkan isi data dulu....";
getch();}
}
Menambahkan Node di Belakang
Penambahan data dilakukan di belakang, namun pada saat pertama kali data langsung ditunjuk pada head-nya.
Penambahan di belakang lebih sulit karena kita membutuhkan pointer bantu untuk mengetahui data terbelakang, kemudian dikaitkan dengan data baru. Untuk mengetahui data terbelakang perlu digunakan perulangan.
void insertBelakang (int databaru){
TNode *baru,*bantu;
baru = new TNode;
baru->data = databaru;
baru->next = baru;
if(isEmpty()==1){
head=baru;
head->next=head;
}
else {
bantu = head;
while(bantu->next != head){
bantu=bantu->next;
}
bantu->next = baru;
baru->next = head;
}
printf(“Data masuk\n“);
}
Sumber :