Здравствуйте, все. В сегодняшнем блоге мы увидим, что такое структуры данных и какие существуют типы структур данных, а в блоге мы сосредоточимся на стеке. Итак, начнем.
Во-первых, мы увидим, что такое структуры данных.
Структуры данных являются одним из основных компонентов факультета информатики. Структуры данных помогают вам решить данную проблему эффективным способом и помогают лучше думать о решении проблемы.
Типы структур данных: –
Линейные структуры данных: –
Линейная структура данных имеет элементы данных, связанные друг с другом таким образом, что элементы расположены последовательно, и каждый элемент связан с элементом перед ним и за ним. Таким образом, структуру можно обойти за один проход.
Нелинейные структуры данных: –
Структуры данных, в которых элементы данных расположены не последовательно или линейно, называются нелинейными структурами данных. В нелинейной структуре данных один уровень не задействован. Следовательно, мы не можем обойти все элементы только за один проход.
Теперь давайте погрузимся в первый тип линейной структуры данных.
(i) Стек
Стек — это список LIFO, что означает, что он работает по принципу «последним пришел — первым вышел». Означает, что элемент, который находится на вершине стека, является первым элементом, удаляемым из стека.
В стеке вставка элемента называется Push, а удаление элемента называется Pop. В структурах данных «Стек», «Очередь» и «Связанный список» являются «Абстрактными типами данных». .
Теперь давайте посмотрим, что такое Абстрактные типы данных.
Абстрактные типы данных просто показывают, какие типы операций реализуются в типе данных, но как реализовать, не является частью определения.
Реализация стеков двух типов в обзоре языка программирования C.
Мы также можем сказать, что стек — это список с указателем, известным как «Вершина стека». Каждая операция в стеке выполняется на вершине стека.
Теперь давайте углубимся в реализацию стека с помощью массива.
Реализация стека в массиве: -
Всякий раз, когда есть операция Push, мы увеличиваем Top. Всякий раз, когда есть операция Pop, мы уменьшаем вершину.
Сложность isFull() равна O(1).
Переполнение стека. Когда наш стек заполнен, и мы также хотим отправить элемент в стек, возникает состояние, известное как «Переполнение стека».
Сложность isEmpty() равна O(1).
Стек поддерживает четыре типа функций:
(i) Полный
(ii) Пусто
(iii) Толчок
(iv)Поп
(v) Пеп
Операция добавления и извлечения в стеке –
Теперь мы увидим некоторые вопросы, связанные со стеком.
Вопрос-1. Можете ли вы найти элемент, который находится внизу стека?
Ответ-1 Да, можно сказать, что мы реализуем стек с помощью массива. Но на практике это невозможно, потому что стек поддерживает только пять операций.
Вопрос-2. Если мы реализуем стек с помощью массива так, что вершина всегда находится в нулевом индексе? В чем сложность Push и Pop, чем ?
Ответ -2 Давайте рассмотрим пример, чтобы понять этот вопрос.
Если Top находится в нулевом индексе, нам всегда нужно сдвигать элементы перед помещением элементов в стек. Например, у нас есть элементы 10 и 20 в стеке, и теперь мы хотим отправить 30 в стек, поэтому перед отправкой 30 нам нужно сначала сдвинуть 10 и 20.
Итак, в этих условиях сложность Толка и Попа становится -
Толкать
Лучший случай = O(1) — — → Когда стек пуст
Наихудший случай = O(n) — — —› Нам нужно пройти через стек.
Поп
Лучший случай = O(1) — — → мы получаем элемент только на вершине стека
Наихудший случай = O(n) — — —› Нам нужно пройти через стек.
Вот и все, что касается этого блога, в следующем блоге мы увидим применение стека. Спасибо, что читаете мой блог, увидимся в следующем блоге.