IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Нужна помощь с очередями, Реализация очереди на базе массива и динам.структур
Черный Менестрель
сообщение 25.10.2009 17:31
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Товарищи, очень нужна ваша помощь!

Необходимо реализовать очередь 2мя способами: на базе массива и на базе динамических структур данных (да-да, массив не труЪ, однако что поделать, такое задание выдали=( ). В каждом случае необходимо реализовать следующие операции:

1. Включить элемент в очередь
2. Исключить элемент из очереди
3. Найти в очереди элемент с заданным значением
4. Соединить 2 очереди в одну
5. Отсортировать очередь

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

ЗЫ: в теме "Все о динамических структурах данных" был, модуль качал.

Заранее спасибо всем, кто откликнется!


--------------------
Когда сойдешь с ума в последний раз в апреле,
И когда выпадет карта,
Когда выпадет жребий,
И первый из нас уйдет по тоннелю
Good bye
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 26.10.2009 5:23
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Черный Менестрель @ 25.10.2009 17:31) *
(да-да, массив не труЪ,
Я долго старался понять, но так и не врубился - что тут зашифровано?.. blink.gif "не трудно"?

Если честно, мне совсем не нравится задание. Отсортировать очередь?.. на фига?? Это классно: отстоял полчаса, подходишь к прилавку, бдруг - бац! приходит кто-то умный и сортирует всех по росту - и я снова в конце? "Зачем?" - спрашиваю. "Because I can!" - отвечает..

То же самое по поводу многих остальных пунктов (типа поиска). В реализации очереди должны быть ДВЕ операции: положить и вынуть. Все. Ну, дополнительно можно приделать запрос длины и еще что-то сервисное. Но для обработки информации (коей является сортировка и выборка) очередь НЕ ДОЛЖНА использоваться. Ботинок не следует использовать как миску для супа, хотя принципиально это и возможно.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Черный Менестрель
сообщение 26.10.2009 9:22
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Цитата(Lapp @ 26.10.2009 5:23) *

Я долго старался понять, но так и не врубился - что тут зашифровано?.. blink.gif "не трудно"?


Ну что за очередь в массиве? Для добавления/удаления элемента надо или постоянно держать массив максимальной длины в памяти (уже плохо), либо создавать новый, туда все переписывать, удалять старый. Ерунда какая-то

Цитата
сли честно, мне совсем не нравится задание. Отсортировать очередь?.. на фига?? Это классно: отстоял полчаса, подходишь к прилавку, бдруг - бац! приходит кто-то умный и сортирует всех по росту - и я снова в конце? "Зачем?" - спрашиваю. "Because I can!" - отвечает..


А насчет задания - вот такая вот бредовая лаба у нас. Причем без какой-либо дополнительной инфы. Листок в зубы и делайте как хотите =(


--------------------
Когда сойдешь с ума в последний раз в апреле,
И когда выпадет карта,
Когда выпадет жребий,
И первый из нас уйдет по тоннелю
Good bye
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 26.10.2009 10:04
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(Черный Менестрель @ 26.10.2009 9:22) *

Ну что за очередь в массиве? Для добавления/удаления элемента надо или постоянно держать массив максимальной длины в памяти (уже плохо), либо создавать новый, туда все переписывать, удалять старый. Ерунда какая-то
Не скажи.
Стандартный метод организации очереди - кольцевой буфер.
Имеет целый ряд достоинств: бысто, не нужно каждый раз дергать менеджер памяти, прозрачно, просто...
Есть одно принципиальное ограничение - фиксированная иаксимальная длина. Но это именно ограничение, а не недостаток, т.к. в большинстве практических случаев такое ораничение нужно вводить искусственно, если его нет. Например, в DOS длина очереди в буфере клавиатуры равнялась 16 введенным символам. И этого вполне хватало. Более того, это было полезно: исчерпание буфера могло происходить только в случае, если прикладная программа вовремя не опустошала буфер, а это обычно происходило лишь в случае каких-либо проблем. В этом случае вполне естественным было как можно раньше информировать пользователя об имеющихся проблемах, а не давать ему возможности вводить килобайты текста, если все равно этот текст в дальнейшем будет потерян.

Кстати, на баже массивов вполне успешно и рационально формируются даже такие принципиально динамические структуры как списки.
Так что массив - вещь универсальная.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 22.06.2025 18:02
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"