|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.10.2013, 18:52 | #21 | ||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Конструктор создает объект. До того, как отработает конструктор, стек не создан (и размера у него нет. Тогда что значит фраза, выделенная красным? Стек таки должен иметь только 2 метода - pop и push. После обхода всех элементов стек остается пустой. Т.е. если мы найдем "элемент по его номеру" - то все элементы до этого номера из стека вытесним (аналогично с о среднеарифметическим). Если требуется сохранить стек в первоначальном состоянии - мы должны использовать вспомогательный стек (или рекурсию {при этом таки используем системный стек в качестве вспомогательного}) - но это нерационально. Стек вообще не предназначен для произвольного доступа к элементам, уточните у преподавателя что он хочет получить. Цитата:
|
||
12.10.2013, 19:47 | #22 | ||
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
да все что угодно, смысл стека первый пришел последний ушел (ну или наоборот, каму как милее), вот эти ваши поп и пуш, и где запрещено чего другого?
вот из педии Цитата:
Цитата:
|
||
12.10.2013, 19:56 | #23 | |||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Цитата:
Суть не только в том, какой интерфейс предоставляет контейнер. но и за какое время он выполняет операции, а также, как он хранит элементы (стек не должен требовать непрерывную область памяти для своего хранения, в отличии от массива). Стек должен позволять добавить элемент в начало и удалить элемент из начала с оценкой времени О(1). То что описано выше он должен гарантировать. Все остальное он не гарантирует (но ты можешь сделать, если очень хочется. В теме вам товарищ уже предлагал дек запилить). simples Цитата:
|
|||
12.10.2013, 20:05 | #24 | |||
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Цитата:
и я так понимаю что та цитат не имеет ничего общего с реальностью, и вы знаете истину? так скорее поведайте нам ее Цитата:
Цитата:
|
|||
12.10.2013, 20:19 | #25 | |||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Цитата:
если не пнимаешь где трудности - покажи код., мне без разницы, эксепшн там будет или проверка. Пока что мне кажется ты не трудности не понимаешь, а вообще всего того, что выше написано. Потому что я не представляю как эксепшн влияет на оценку сложности. - я тебе про О(1), ты мне про эксепшн и долбаную википедию. Цитата:
http://www.cplusplus.com/reference/stack/stack/ Если этого тебе мало, что все нормальные люди ждут от стека именно такого поведения - посмотри на реализации в бусте, Qt еще где-нибудь. Открой книжки Скиены, Кнута (если жизнь не дорога) или, хотя бы, Макконела. |
|||
12.10.2013, 20:33 | #26 | |
Great Code Monkey
Форумчанин
Регистрация: 09.08.2007
Сообщений: 533
|
Цитата:
Размер для стека чисто гипотетически может быть нужен - если хочется его иметь либо на стеке, либо в куче. |
|
12.10.2013, 20:39 | #27 | ||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Цитата:
Если вы о том же (если Вы понимаете, о чем говорит eval), то поясните мне пожалсто, зачем это делать? Последний раз редактировалось rrrFer; 12.10.2013 в 20:46. |
||
12.10.2013, 20:39 | #28 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Э-э-м, ребятки, ничего, что я со своим клювом в Вашу высокоинтеллектуальную беседу? Ну уже простите, но хотелось бы нам сирым знать, что же такое "сайз"?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
12.10.2013, 20:50 | #29 | |
Great Code Monkey
Форумчанин
Регистрация: 09.08.2007
Сообщений: 533
|
Цитата:
Не размер, а сам стек. В зависимости от размера стека мы можем хранить элементы либо в статическом буфере, либо, если его не хватает, выделять память в куче. Сайз - подозреваю, что размер. |
|
12.10.2013, 20:56 | #30 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
доступ/удаление/вставка к первому элементу обычного, стека на связных списках - О(1). к твоему массиву доступ/удаление - О(1), а вставка - О(1), НО ИНОГДА О(N) - это вообще не стек, т.е., оно не стабильно себя ведет и ненужно. Я уже не говорю, что под твоими массивами памяти может быть выделено больше чем надо (но чем больше - тем реже ты получишь О(N) при вставке). И еще раз, какой из этого профит? - я красным уже выделял. Массивы могут дать хорошее время произвольного доступа, но оно от стека не требуется. Что-то еще? |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Cоздать класс жидкость. определить конструкторы деструкторы и функцию печати. создать публик производный класс. (С++) | Динар Габбасов | Помощь студентам | 0 | 28.05.2012 18:44 |
Определить пользовательский класс... | BoCbMou | C# (си шарп) | 0 | 18.04.2012 12:59 |
задача - определить Класс | Andrew_s | Visual C++ | 2 | 13.12.2011 22:58 |
Определить, создан ли класс. | Alex Cones | Общие вопросы Delphi | 4 | 14.01.2010 18:12 |
создать динамический Стек через класс шаблон | Petruha-nsk | Общие вопросы C/C++ | 1 | 08.11.2009 12:41 |