๐ Daftar Isi
Pada artikel kali ini kita akan membahas bagaimana cara menambahkan node pada double linked list. Perlu diketahui bahwa ketika kita ingin mengambahkan node terdapat beberapa kemungkinan kondisi yang dapat terjadi.
Insert sebagai node awal (head)
void insert_head(mynode *head, int new_data)
{
mynode new_node = createnode(new_data);
new_node->next = *head;
new_node->prev = NULL;
if (*head != NULL)
(*head)->prev = new_node;
*head = new_node;
Perlu diingat mynode *head sama saja dengan struct node **head (double pointer menyimpan alamat memori pointer)
Insert sebagai node akhir (tail)
void insert_tail (mynode *head, int new_data)
{
mynode new_node = createnode(new_data);
new_node->next = NULL;
if (*head == NULL)
{
new_node->prev = NULL;
*head = new_node;
return;
}
mynode cursor = *head;
while (cursor->next != NULL)
cursor = cursor->next;
cursor->next = new_node;
new_node->prev = cursor;
Jika cursor = NULL, artinya node baru memiliki nilai paling besar sehingga harus diletakkan di paling belakang alias menjadi tail.
Insert setelah node tertentu
void insert_after(mynode prev_node, int new_data)
{
if (prev_node == NUL)
{
printf("Previous node tidak boleh NULL');
return;
}
mynode new_node = createnode(new_data);
new_node->next = prev_node->next;
prev_node->next = new_node;
new_node->prev = prev_node;
if (new_node->next != NULL)
new_node->next->prev = new_data;
}
Insert sebelum node tertentu
void insert_before(mynode next_node, int new_data)
{
if (next_node == NULL)
{
printf("Next node tidak boleh NULL");
return;
mynode new_node = createnode(new_data);
new_node->prev = next_node->prev;
next_node->prev = new_node;
new_node->next = next_node;
if (new_node->prev != NULL)
new_node->prev->next = new_data
Materi Lengkap
Silakan baca juga beberapa artikel menarik kami tentang Double Linked List, daftar lengkapnya adalah sebagai berikut.