Lila25mila
Lila25milaApril 5, 2019, 4:26 a.m.

Linked list

In this tutorial, you will learn about the linked list and its applications. You will also learn how to create and perform various linked list operations.


In the Treasure Hunt game, you start by looking for the first clue. When you find it, instead of finding the treasure, you will find the location of the next clue, and then the next one, and so on. You keep following the clues until you reach the treasure.

The linked list is similar to the game example. It is a series of connected "nodes" that contains the "address" of the next node. Each node can store a data point, which can be a number, a string, or any other data type.

Representing a linked list

We need to start somewhere, so we give the address of the first node a special name called HEAD. Also, the last node in the linked list can be identified because its next part points to NULL.

How is another node referenced?

Let's think about what each node contains:

  • Data element;
  • Address of another host.

We concatenate the data element and the link to the next node into a structure like:

struct node
{
  int data;
  struct node *next;
};

Understanding the structure of the linked list node is the key to understanding.

Each structural node has a data element and a pointer to another structural node. Let's create a simple linked list with three elements to see how it works.

/* Инициализируем узлы */
struct node *head;
struct node *one = NULL;
struct node *two = NULL;
struct node *three = NULL;

/* Выделяем память */
one = malloc(sizeof(struct node));
two = malloc(sizeof(struct node));
three = malloc(sizeof(struct node));

/* Назначаем значения данных */
one->data = 1;
two->data = 2;
three->data=3;

/* Соединяем узлы */
one->next = two;
two->next = three;
three->next = NULL;

/* Сохраняем адрес первого узла в голове */
head = one;

If you don't understand any of the above lines, all you need to do is update the pointers and structures.

In just a few steps, we have created a simple linked list with three nodes.

The benefit of a linked list comes from the ability to break a chain and reattach to it. For example, if you want to place element 4 between 1 and 2, follow these steps:

  • Create a new structure node and allocate memory for it.
    *Add its data value as 4
  • Point the next pointer to a struct node containing 2 as the data value
  • Change the next pointer "1" to the node we just created.

To do something similar in an array would require shifting the positions of all subsequent elements.

Linked List Utility

Lists are one of the most popular and efficient data structures that are implemented in all programming languages such as C, C++, Python, Java and C#.

Also, linked lists are a great way to learn how pointers work. By practicing linked lists, you can prepare yourself to learn more complex data structures such as graphs and trees.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

Comments

Only authorized users can post comments.
Please, Log in or Sign up
AD

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:50points,
  • Rating points-4
m

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:80points,
  • Rating points4
m

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:20points,
  • Rating points-10
Last comments
ИМ
Игорь МаксимовNov. 22, 2024, 11:51 a.m.
Django - Tutorial 017. Customize the login page to Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Evgenii Legotckoi
Evgenii LegotckoiOct. 31, 2024, 2:37 p.m.
Django - Lesson 064. How to write a Python Markdown extension Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
A
ALO1ZEOct. 19, 2024, 8:19 a.m.
Fb3 file reader on Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Игорь МаксимовOct. 5, 2024, 7:51 a.m.
Django - Lesson 064. How to write a Python Markdown extension Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
d
dblas5July 5, 2024, 11:02 a.m.
QML - Lesson 016. SQLite database and the working with it in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Now discuss on the forum
m
moogoNov. 22, 2024, 7:17 a.m.
Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
Evgenii Legotckoi
Evgenii LegotckoiJune 24, 2024, 3:11 p.m.
добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
t
tonypeachey1Nov. 15, 2024, 6:04 a.m.
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
NSProject
NSProjectJune 4, 2022, 3:49 a.m.
Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…

Follow us in social networks