Связные списки
Узнайте, как работают связные списки и как реализовать операции вставки и удаления
«Связные списки» — бесплатный урок C Academy на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C Academy содержит 3 уроков всего.
Связные списки в C
Связные списки в C
Связный список — это динамическая структура данных, в которой элементы (узлы) соединены с помощью указателей.
В этом уроке Вы узнаете:
- Как работают связные списки.
- Как вставлять и удалять узлы в связном списке.
- О преимуществах связных списков по сравнению с массивами.

Пример: определение узла связного списка
Пример: определение узла связного списка
В C узел связного списка определяется с помощью struct, содержащей поле данных и указатель на следующий узел.
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node *next;
};
int main() {
struct Node *head = NULL;
return 0;
}Вставка узла в начало
Вставка узла в начало
Чтобы вставить новый узел в начало связного списка:
- Создайте новый узел.
- Установите его указатель
nextна текущую голову списка. - Обновите указатель на голову списка.
Пример: вставка узла в начало
Пример: вставка узла в начало
Эта программа вставляет новый узел в начало связного списка.
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node *next;
};
void insertAtBeginning(struct Node **head, int newData) {
struct Node *newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = newData;
newNode->next = *head;
*head = newNode;
}
int main() {
struct Node *head = NULL;
insertAtBeginning(&head, 10);
printf("Inserted: %d\n", head->data);
return 0;
}Удаление узла
Удаление узла
Чтобы удалить узел из связного списка:
- Найдите узел, который нужно удалить.
- Обновите указатель
nextпредыдущего узла. - Освободите память удалённого узла.
Пример: удаление узла
Пример: удаление узла
Эта программа удаляет узел из связного списка.
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node *next;
};
void deleteNode(struct Node **head, int key) {
struct Node *temp = *head, *prev;
if (temp != NULL && temp->data == key) {
*head = temp->next;
free(temp);
return;
}
while (temp != NULL && temp->data != key) {
prev = temp;
temp = temp->next;
}
if (temp == NULL) return;
prev->next = temp->next;
free(temp);
}
int main() {
struct Node *head = (struct Node*)malloc(sizeof(struct Node));
head->data = 10;
head->next = NULL;
deleteNode(&head, 10);
return 0;
}Преимущества связных списков
Преимущества связных списков
Связные списки имеют несколько преимуществ по сравнению с массивами:
- Динамический размер (не нужно заранее задавать размер).
- Эффективная вставка и удаление элементов.
- Нет потерь памяти из-за фиксированного размера.
Итоги
Итоги
В этом уроке Вы узнали:
- Что такое связные списки и как они работают.
- Как вставлять и удалять узлы.
- О преимуществах связных списков по сравнению с массивами.
Далее мы рассмотрим стеки и очереди в C!

Часто задаваемые вопросы
Урок «Связные списки» бесплатный?
Да — полный текст урока «Связные списки» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C Academy, подпишись на CoddyKit PRO. Курс C Academy содержит 3 уроков всего.
Чему я научусь в уроке «Связные списки»?
Узнайте, как работают связные списки и как реализовать операции вставки и удаления Ты практикуешь C Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C Academy?
Предыдущий опыт не требуется. C Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.
Сколько времени занимает урок «Связные списки»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C Academy?
Да. Каждый урок C Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Связные списки
- Стеки и очереди
- Деревья и графы