Связные списки на C++

Что такое связный список?

Связный список — это линейная структура данных, где каждый элемент (узел) содержит данные и указатель на следующий узел. В отличие от массива, элементы не хранятся в непрерывной памяти.

Пример кода на C++

#include <iostream>

struct Node {
    int data;
    Node* next;
    Node(int val) : data(val), next(nullptr) {}
};

void printList(Node* head) {
    Node* current = head;
    while (current != nullptr) {
        std::cout << current->data << " ";
        current = current->next;
    }
    std::cout << std::endl;
}

Node* insertAtEnd(Node* head, int val) {
    Node* newNode = new Node(val);
    if (!head) return newNode;
    Node* current = head;
    while (current->next) {
        current = current->next;
    }
    current->next = newNode;
    return head;
}

Преимущества и недостатки

  • Плюсы: динамический размер, быстрая вставка/удаление в начале
  • Минусы: нет прямого доступа к элементу по индексу, лишняя память на указатели

std::list в C++ STL — это уже реализованный двусвязный список. Используйте его вместо собственной реализации.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *