Итак, мы рассмотрели типы структур данных.

Теперь мы узнаем о первой линейной структуре данных, то есть о массиве.

Если у вас есть базовые знания о массивах, то есть о синтаксисе и его типах, тогда мы можем поговорить о его преимуществах и недостатках.

Преимущества:

  1. Подобные элементы данных — все элементы массива имеют одинаковый тип.
  2. Легко получить доступ к любому элементу через его индекс.
  3. Используется при реализации стеков и очередей.
  4. Подходит, когда количество элементов уже известно.

Недостатки:

а) Статическое выделение памяти — память для элементов выделяется во время компиляции. Мы не можем увеличивать или уменьшать размер массива после выделения.

б) Вставка и удаление элементов в массиве. Довольно сложно добавить новый элемент в массив в любом месте, кроме конца списка. Мы должны сдвинуть/переместить все элементы в правой части позиции индекса, где должен быть добавлен новый элемент.

Пример: если мы хотим вставить элемент «8» в этот массив

мы должны сдвинуть все элементы после «7» на один шаг вправо, а последний элемент должен быть отброшен.

Следовательно, у нас есть концепция связанных списков.

Вы можете подумать, зачем нам новая концепция под названием «Связанные списки», если у массивов больше преимуществ, чем недостатков.

Это тот момент, когда нам нужно знать, насколько важны эти 2 недостатка…..

В связанных списках память выделяется динамически, т. е. память выделяется во время выполнения, благодаря чему мы можем изменять размер списка в соответствии с пользователем.

ПРИМЕЧАНИЕ. Что бы вы ни узнали, это должно удовлетворить клиента (пользователя), когда вы это реализуете.

Вставка и удаление элементов очень просты по сравнению с массивами.

Преимущества связанных списков:

  • Не будет потери памяти, так как они распределяются динамически.
  • Он может хранить в нем данные любого типа, т.е. гетерогенные.
  • Вставка и удаление легко
  • В реализации стеков и очередей

Теперь давайте посмотрим, как выглядит связанный список:

Так выглядит связанный список. Он состоит из 2-х частей:

  1. Часть данных
  2. Link part – для привязки адресной части следующего узла

Мы подробно все обсудим…….. в следующих статьях