Double Linked List Code Explain
Hello to everyone.
Im trying to learn some more things about the linked lists.
I have here two structures Users and Ratings the ratings is double linked list and link to users.
Can someone explain me exactly what they do every line...i have many things in my mind about, but i want to clear everything from an expert
Code:
USER *user = usertable[slot];
(user->num_ratings)++; // here is a counter
RATING_NODE *prev = NULL;
RATING_NODE *curr = user->ratings;
while (curr != NULL)
{
if (rnode->item_id < curr->item_id)
break; // ok here checking the input item value with existing in the nodes
prev = curr; // search serialise every next
curr = curr->next;
}
if (prev == NULL) {
rnode->next = user->ratings;
user->ratings->prev = rnode;
user->ratings = rnode;
} else if (curr == NULL) {
prev->next = rnode;
rnode->prev = prev;
} else {
prev->next = rnode;
rnode->prev = prev;
rnode->next = curr;
curr->prev = rnode;
}
}
Thanks everyone for your time!.