This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
notes:data:fall2023:projects:ttb1 [2023/09/15 20:39] – [NODE POINTER] walley | notes:data:fall2023:projects:ttb1 [2023/09/16 20:50] (current) – [REMOVING A NODE FROM THE LIST] jwieland | ||
---|---|---|---|
Line 50: | Line 50: | ||
<code C> | <code C> | ||
=====TRAVERSING LIST===== | =====TRAVERSING LIST===== | ||
+ | In a singly-linked list, we can only move in one direction through the list — forward. To move through the list, we need to move our temp pointer to instead point to the next item within the list. This is where our next pointer within our '' | ||
+ | If your list is set up properly, ``temp-> | ||
+ | <code C>temp = temp-> | ||
+ | <color # | ||
=====INSERTING NODE INTO LIST===== | =====INSERTING NODE INTO LIST===== | ||
Line 65: | Line 69: | ||
=====REMOVING A NODE FROM THE LIST===== | =====REMOVING A NODE FROM THE LIST===== | ||
+ | One of the ways to delete a specific Node from a linked list is to create a function that searches for the node by its properties (e.g. x, and y) and then removes it. The psudo-code would look something like this. | ||
+ | |||
+ | <code c> | ||
+ | deleteNode(Node** start-of-list, | ||
+ | Node* current =*start-of-list; | ||
+ | Node* previous= NULL; | ||
+ | while(current!=NULL){ | ||
+ | if (current_node-> | ||
+ | if(previous==NULL){ | ||
+ | //node we want to delete from the list is the first node in the list | ||
+ | *start-of-list =current-> | ||
+ | } else{ | ||
+ | //set the previous node's pointer to the current node's pointer | ||
+ | } | ||
+ | free(current) | ||
+ | return; | ||
+ | } | ||
+ | //itterate to next brick | ||
+ | previous= current; | ||
+ | current=current-> | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | In essence we are itterating through the different nodes, and checking if they are the node we want to delete. Make sure to have a catch case for the first node in the list. | ||
====AT THE START OF LIST==== | ====AT THE START OF LIST==== | ||