Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn Building a Linked List | Implementing Data Structures
C Structs

Swipe to show menu

book
Building a Linked List

Let's write a simple function to create a node. This function should:

  • As an argument, take a number of type int, which will be stored in the node in the data field;

  • Create a pointer to a dynamically allocated memory area (taking into account the size of the node);

  • Check the success of memory allocation for the node;

  • Put the required value (function argument) into the data field;

  • The next pointer must be NULL, since the function creates only one node;

  • The function must return a pointer to the memory area where value is stored.

The AddNewNode() function takes a pointer to a pointer, because it can change the value of the pointer to the first (head) node of the list, as well as the value that will be stored in the new node:

python

If the list is empty (*head == NULL), we simply update the pointer to the head of the list (*head) to point to the new node (newNode), in which case newNode will become the first node (head node). In the case of a non-empty list, we use a loop to look for the last node.

The current node plays the role of a buffer node, with its help we can iterate through the list and find a node that points to nowhere (*next == NULL).

Note

The last node in the list will have a next pointer equal to NULL.

python

After all, you need to make the new node newNode the last node, which means current->next must be equal to newNode. Now newNode is the last node in the list.

As a task, you need to figure out and add a function for adding new nodes to existing nodes.

Task

Swipe to start coding

  1. Create a new node newNode, which will store the data value;

  2. Specify the condition under which the list will be considered empty;

  3. Specify what current->next will be equal to after the loop completes.

Solution

Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 5. ChapterΒ 3

Ask AI

expand
ChatGPT

Ask anything or try one of the suggested questions to begin our chat

book
Building a Linked List

Let's write a simple function to create a node. This function should:

  • As an argument, take a number of type int, which will be stored in the node in the data field;

  • Create a pointer to a dynamically allocated memory area (taking into account the size of the node);

  • Check the success of memory allocation for the node;

  • Put the required value (function argument) into the data field;

  • The next pointer must be NULL, since the function creates only one node;

  • The function must return a pointer to the memory area where value is stored.

The AddNewNode() function takes a pointer to a pointer, because it can change the value of the pointer to the first (head) node of the list, as well as the value that will be stored in the new node:

python

If the list is empty (*head == NULL), we simply update the pointer to the head of the list (*head) to point to the new node (newNode), in which case newNode will become the first node (head node). In the case of a non-empty list, we use a loop to look for the last node.

The current node plays the role of a buffer node, with its help we can iterate through the list and find a node that points to nowhere (*next == NULL).

Note

The last node in the list will have a next pointer equal to NULL.

python

After all, you need to make the new node newNode the last node, which means current->next must be equal to newNode. Now newNode is the last node in the list.

As a task, you need to figure out and add a function for adding new nodes to existing nodes.

Task

Swipe to start coding

  1. Create a new node newNode, which will store the data value;

  2. Specify the condition under which the list will be considered empty;

  3. Specify what current->next will be equal to after the loop completes.

Solution

Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 5. ChapterΒ 3
Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
We're sorry to hear that something went wrong. What happened?
some-alt