Массивы

Массив - это список данных, хранящихся в непрерывной памяти. Основное преимущество массива заключается в том, что доступ к определенному элементу в списке может быть выполнен за время выполнения O (1). Основным недостатком использования массивов были бы вставки и удаления. Для того, чтобы сделать то и другое, массивы должны перемещаться по всем другим элементам, чтобы освободить место для нового.

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

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

Стеки

Стеки часто реализуются с помощью массивов и списков, но вставка и удаление данных следует строгому методу. Стеки используют структуру LIFO, которая переводится как «последним вошел - первым ушел». Лучше всего это описать стопкой тарелок. Чтобы добавить новую тарелку в стопку, вы должны добавить ее в верхнюю часть. Чтобы вынуть тарелку из стопки, вы должны удалить последнюю тарелку, которую вы положили сверху.

Очереди

Подобно стекам, очереди следуют строгой структуре, называемой FIFO, что означает First-In-First-Out. Простым объяснением этого может быть очередь в магазине. Каждый покупатель выстраивается в очередь, чтобы заплатить за свои товары, и выходит из очереди в том порядке, в котором они были.

Когда использовать стеки против очередей против списков?

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