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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Черный Менестрель
сообщение 26.10.2009 18:11
Сообщение #2





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

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


Цитата
Ты хоть начни что-то делать, покажи, что пытаешься, а то смахивает на "сделайте мне задание, а я пойду, сдам и еще семестр делать ничего не буду"...

Так я начал =) Перерыл кучу инфы, нашел еще модуль для очереди, в приложении он, однако сортировки там нет.

Цитата
Неужели не заметил там же мой пост о сортировке очереди, реализованной динамическим списком?

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

С массивами я поковыряюсь, благо в них более-менее понимаю, однако с динамическими еще остались загвоздки. Вообще, если честно, я ни черта не понимаю в этих указателях и тд, потому хотелось бы спросить, во-первых по сортировке. В целом я понимаю, что происходит, но некоторые действия мне неясны, в частности
Код
empty := not assigned(head)
   . . . . .. . . . .
while assigned(p) do


Для чего в этих строках служит assigned?


Вернусь к найденному мной модулю (в приложении), очередь там, как и в вашем примере сортировки, как объект рассматривается. Правда я не понимаю смысла некоторых операций, в частности
function Begining : E;
function IsNotEmpty : boolean; (для чего ее добавили, если рядом function IsEmpty : boolean; ?)

function OutBegining : E;
Procedure DelBegining;
Эти функция и процедура судя по результатам одно и то же выполняют, или я не прав.


ЗЫ: а про объединение очередей вообще никакой информации найти не удалось ((





Прикрепленные файлы
Прикрепленный файл  QueeLINT.rar ( 1.95 килобайт ) Кол-во скачиваний: 137


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


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

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

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


Цитата(Черный Менестрель @ 26.10.2009 18:11) *
некоторые действия мне неясны, в частности
 empty := not assigned(head)
. . . . .. . . . .
while assigned(p) do
Для чего в этих строках служит assigned?
Проверка, была ли выделена память под переменные head и p соответственно.

Цитата(Черный Менестрель @ 26.10.2009 18:11) *
function Begining : E;
function IsNotEmpty : boolean; (для чего ее добавили, если рядом function IsEmpty : boolean; ?)
Либо автор не знаком с операцией NOT, либо крепко ее невзлюбил..

Цитата(Черный Менестрель @ 26.10.2009 18:11) *
function OutBegining : E;
Procedure DelBegining;
Эти функция и процедура судя по результатам одно и то же выполняют, или я не прав.
Подобное в некоторых случаях оправдано. Особенно, если нельзя вызвать функцию как процедуру (без присваивания). Но в целом, согласен, лишнее. Вообще, я бы не стал рекомендовать этот найденный тобой модуль в качестве примера для подражания..

Цитата(Черный Менестрель @ 26.10.2009 18:11) *
ЗЫ: а про объединение очередей вообще никакой информации найти не удалось ((
А голова на что? Ты правда надеешься всегда все "находить"?..

Пожалуйста, используй тэг code=pas для паскалевских программ


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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