Аватар для Zedapp
45 / 31 / 18
Регистрация: 15.11.2014
Сообщений: 169

Преимущества и недостатки при реализации стека, очереди и дека через дин. массива

20.03.2015, 23:38. Показов 18073. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

1) Назовите преимущества и недостатки реализации очереди с помощью динамического массива.
2) Назовите преимущества и недостатки реализации стека с помощью односвязного списка.
3) Назовите преимущества и недостатки реализации дека с помощью динамического массива.

1) По первому я могу лишь предположить, что будет долгое время работы в связи с тем, что необходимо будет довыделять буфер, если вдруг закончится место в массиве. Да и в принципе достаточно долго доставать элемент, если он находится в конце.
2) Ничего не придумал
3) ничего не придумал

Если есть идеи, подкиньте пожалуйста.

Добавлено через 1 час 41 минуту
UPD:

1) Достоинсва: можно не заботится, о том, что закончится память, можно быстро найти нужный элемент(например бинарным поиском если очередь отсортирована. В отличии от очереди реализованной на затрачивает меньше памяти.
Недостатки: большое время добавления элемента, если заканчивается память(из-за того, что необходима скопировать весь массив в новый буфер.
2) Достоинства: Добавление элемента всегда работает за одно и тоже время(т.к. нет необходимости компировать весь стек, если вдруг кончится память),
Недостатки: Возможность перемещаться по стеку лишь в одном направлении, что затруднит поиск необхоимого элемента, элементы списка могут располагаться в памяти разреженно, что оказывает негативный эффект на кэширование процессора.
3)Достоинства: Занимает меньше памяти, чем реализация дека с помощью списка
Недостатки: Сложнее добавлять новые элементы если реализовывать не списком.

Наверняка ещё есть что-то, но вроде должно хватить. Если что добавьте потом.

Модератор закройте тему.
Всегда хотел это сказать.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.03.2015, 23:38
Ответы с готовыми решениями:

из дин. дека в дин. стек (Borland С++)
Доброй ночи. Никак не получается сделать из динамического дека - стек. Помогите разобраться где именно и что необходимо изменить, что бы...

Используя модуль для реализации дека целых чисел, реализовать очередь на базе дека
Уважаемые программисты!Очень нужна Ваша помощь: (помогите решить, разобраться или хотябы просто объяснить алгоритм, с чего начинать, как...

В чем преимущества и недостатки разметки UI при помощи XML
Почему повсеместно используется именно такой способ? Ведь можно создавать компоненты в коде.

4
Модератор
Эксперт по электронике
8963 / 6729 / 921
Регистрация: 14.02.2011
Сообщений: 23,762
20.03.2015, 23:53
Цитата Сообщение от Zedapp Посмотреть сообщение
Возможность перемещаться по стеку лишь в одном направлении,
по стеку а равно по очереди вообще нельзя перемещаться , только положил/ снял
1
 Аватар для Zedapp
45 / 31 / 18
Регистрация: 15.11.2014
Сообщений: 169
21.03.2015, 00:17  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
нельзя перемещатьс
Я имел ввиду, что допустим если есть необходимость проверить, есть ли данный элемент в стеке не доставая его.
0
21 / 21 / 13
Регистрация: 28.04.2013
Сообщений: 85
21.03.2015, 00:36
Лучший ответ Сообщение было отмечено Zedapp как решение

Решение

Zedapp, каким методом ты решил это выяснить? pop, push или peek? Ты можешь глянуть только вехний, это стек, бро

Добавлено через 12 минут
по теме
1) очередь динамическим массивом. полная лажа, или я чет не понял. если у нас есть еще хотя бы 2 указателя : на последний элемент очереди и на первый, и они постоянно меняются, то это еще куда ни шло, а если есть просто массив и мы считаем что [0] элемент он первый, а какой - то там последний, то каждое извлечение элемента (только первого естественно) влечет за собой копирование всех остальных назад на 1 это жуть какая то получается, или это влечет за собой выделение нового массива длиной н-1, копирование туда и удаление старого?
из плюсов: памяти нужно ровно столько, сколько весят данные
2) стек односвязным списком - все по науке
минусы - чуть больше памяти
3) тоже что с очередью, я не понимаю что именно они имеют ввиду, если есть указатели дополнительные, то все не так плохо, если нет то беда
1
5 / 5 / 6
Регистрация: 17.05.2014
Сообщений: 61
21.03.2015, 00:40
Недостатки стека через динам. массив:
-одной из основных преимуществом массива над указателями является обращение элемента по индексу, в стеке такой функции не должно быть
-добавление в стек происходит в голову и из неё же извлекается, т.е. идет работа с 1 элементом. Теперь конкретней: при добавлении в стек реализованном через указатели нужно будет создать только 1 указатель, выделить под него память и связать со стеком, итого не в зависимости сколько элементов в текущем стеке мы выделяем память только под 1 элемент. В динам. массиве для добавления 1го элемента придется целиком перевыделять память для всего массива, т.е. есть стек на 100000 элементов и чтобы добавить 1 элемент нужно перевыделить 100001 элементов, итого мы имеем большие косяки по памяти.

Тоже самое с очередью и деком
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.03.2015, 00:40
Помогаю со студенческими работами здесь

Помогите создать программу по реализации списка, стека и очереди!
Помогите, пожалуйста, создать программу по реализации списка, стека и очереди.

Преимущества и недостатки Windows Forms
Какие плюсы и минусы у Windows Forms? Чем удобна? Добавлено через 6 часов 32 минуты поднимаю

Работа за рубежом. Преимущества и недостатки.
Что вы можете сказать про работу зарубежом? Какие она имеет преимущества и недостатки перед работой в России? Допустим, речь идет о...

QuickSort и MergeSort: недостатки и преимущества
Добрый вечер! Qsort плоха тем, что в худшем случае работает за О(n^2). Mergesort стабильна и работает ВСЕГДА за n*log(n). Расскажите,...

Преимущества и недостатки Reg Organizer
установил RegOrganizer, слышал про неё много расхожих мнений, кто - то считает её полнейшей бутафорией, с красивым интерфейсем, кто - то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг. Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя. Странные серые краски проникают и. . .
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
Множества в Python
py-thonny 11.06.2025
В Python существует множество структур данных, но иногда я сталкиваюсь с задачами, где ни списки, ни словари не дают оптимального решения. Часто это происходит, когда мне нужно быстро проверять. . .
Работа с ccache/sccache в рамках C++
Loafer 11.06.2025
Утилиты ccache и sccache занимаются тем, что кешируют промежуточные результаты компиляции, таким образом ускоряя последующие компиляции проекта. Это означает, что если проект будет компилироваться. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru