๐ Daftar Isi
Pada artikel sebelumnya telah dibahas mengenai operasi penambahan node pada double linked list. Pada artikel kali ini akan dilanjutkan untuk operasi penghapusan pada double linked list.
Terdapat beberapa kondisi yang mungkin terjadi ketika kita melakukan penghapusan node sebagai berikut
Delete node pertama (head)
void remove_first(mynode *head)
{
mynode temp = *head;
*head = (*head)->next;
(*head)->next->prev = NULL;
free(tmp);
}
Delete node terakhir (tail)
void remove_end(mynode tail)
{
mynode temp = tail;
tail = tail->prev;
if (tail != NULL)
tail->next = NULL;
free(temp);
}
Delete pada node tertentu
void remove_middle(mynode head, int position)
{
mynode temp = head;
for (int i = 1; i < position && temp != NULL; i++)
temp = temp->next;
if (temp != NULL)
{
temp->prev->next = temp->next;
temp->next->prev = temp->prev;
free(temp);
}
else
printf("Posisi tidak valid");
}
Materi Lengkap
Silakan baca juga beberapa artikel menarik kami tentang Double Linked List, daftar lengkapnya adalah sebagai berikut.