Введение в динамические структуры данных #1

Здравствуйте. Сегодня я хочу поговорить с вами о структуре данных.

Но сначала небольшое предисловие.

Все эти бескрайние просторы компьютерной памяти представляют собой лишь набор нулей и единиц( классно, да? :) ). А это значит, что для компьютера все едино — что картинка, что бинарный файл. Далее все эти нолики и единички кучкуются в байты, килобайты и т.д.

«Но как же не потеряться в этом бескрайнем океане?» — спросите вы.

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

Вот из этих маленьких ячеек(байтов) формируется память компьютера. И все эти созданные данные можно поделить на два типа: просты и сложные.

Простые — это отдельные числа, символы и т.п.

А вот сложные типы данных формируются уже из готовых простых. Сложные типы данных еще называют структурами данных(далее просто структуры).

Но структуры бывают разные, а именно существует два вида: статические и динамические.

Когда выделяется память на определенное количество связанных простых данных, вся эта выделенная кучка байтов является статический структурой, так как мы не можем ни добавить новый элемент в структуру, ни удалить существующий. Примером может служить статический последовательный массив, где элементы следуют один за другим в памяти(  такая сплошная «лента» из одинаковых ячеек). Такие структуры хороши тем, что занимают мало памяти, удобно расположены и в массиве легко ориентироваться.

Что представляют из себя динамические структуры, я думаю, вы поняли. Но все же я уточню. Динамической структурой является набор ячеек памяти (не обязательно расположенных подряд, как статические, даже с большей вероятностью они будут расположены не подряд). Вроде бы хорошо, что они могут быть расположены как попало, но это не совсем верно, так как, чтобы элементы сохраняли связь между собой, нужно выделять в дополнение  к каждой простой ячейке ячейку для хранения адреса соседнего элемента (или даже две, если говорить о списках с двумя связями, но это тема для отдельной статьи). Но одновременно это свойство является и большим плюсом, так как, благодаря этому, мы можем как добавлять элементы (ячейка с нужной информацией+ячейка с адресом соседней), так и удалять, причем в любом месте структуры. Примером динамических структур являются стеки, очереди, бинарные деревья и т.д.

И вот, для наглядности, небольшая картинка:

3-element

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

Если что-то непонятно, то задавайте вопросы в комментариях.

Темы для новых статей можете предложить в моей группе ВК.

Надеюсь статья была вам полезна.

Всем спасибо за внимание. До скорой встречи.

Следующая статья

Поддержать сайт и автора: Z208212694629
R429062753687
Яндекс деньги - https://money.yandex.ru/to/410013974912682

Подпишись:
На мой канал youtube
На рассылку свежих статей
На группу ВК
На группу в ОК

Понравилась статья? Поделись с друзьями)

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники

Введение в динамические структуры данных #1: 3 комментария

  1. Уведомление: Связные списки | Всего наилучшего — 73!

  2. Уведомление: Стек #3 | Всего наилучшего — 73!

  3. Уведомление: Структуры данных. Список статей | Всего наилучшего — 73!

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