Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2011, 23:40   #1
qwerty1993
Новичок
Джуниор
 
Регистрация: 15.06.2011
Сообщений: 2
По умолчанию указатели(очередь)

написать на паскале или делфи
Создать структуру данных очередь с заданным набором функции:
-создать пустую очередь
-проверить очередь на пустоту
-добавить элемент в очередь
-удалить элемент из очереди
-вывод на просмотр всех элементов очереди

помигите плиз очень нужно...
заранее спасибо!

Последний раз редактировалось qwerty1993; 15.09.2011 в 00:07. Причина: уточнение
qwerty1993 вне форума Ответить с цитированием
Старый 15.09.2011, 00:53   #2
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию

Паскаль делфи я уже не помню,напишу словами.

делаешь структуру
struct queue

тут указатель типа queue
тут какие-то данные типа x:integer;

далее в программе создаётся указатель на начало списка queue


далее делаешь набор функций

-создать пустую очередь

функция которая возвращает тип queue

создаёшь указатель на голову списка.

-проверить очередь на пустоту

функция возвращает тип boolean

if (head==null) вернуть true
else вернуть false

-добавить элемент в очередь

процедура в неё передаёшь указатель на голову.
запрашиваешь у пользователя данные
создаёшь объект типа queue
if (head==null)
ставишь указатель головы на этот объект
обнуляешь у этого объекта ссылку на следующий элемент
добавляешь данные введённые пользователем в объект
else head!=null
тогда проводишь по списку поиск с помощью дополнительного указателя типа queue(x например)
while (x!=null)
x=x.next;
и добавляешь как я писал выше только вместо head будет x

-удалить элемент из очереди

какой элемент? в начале? в конце? или по номеру в очереди?

-вывод на просмотр всех элементов очереди

с помощью
"тогда проводишь по списку поиск с помощью дополнительного указателя типа queue(x например)
while (x!=null)
x=x.next;"
делаешь вывод данных
За помощь: Нажмите на весы слева от сообщения!
savva вне форума Ответить с цитированием
Старый 15.09.2011, 02:15   #3
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Я б помог, но спать очень хочется и строчить весь код проги в лом. скачай отсюда
Владимир Попов. Паскаль и Дельфи. Самоучитель.
и приблизительно на 145-150 странице будет всё, что тебе надо.
Кажется там только проверки нет. Делается так:
Код:
type 
TYkazatel=^zapis;
 zapis= record
   i:integer;
   next:TYkazatel;
.......
var
P, First: Tykazatel;
.......
if first=nil then writeln('CnuCoK nyCT');
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 15.09.2011, 08:31   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Rin
и приблизительно на 145-150 странице будет всё, что тебе надо.
ну, скорее страницы 287-294
и реализации конкретно ОЧЕРЕДИ я там не увидел.
Впрочем, представленной там информации и примеров вполне достаточно, чтобы разобраться в теме и написать код самостоятельно.

ещё на форуме можно посмотреть примеры реализации очереди:

Очередь

Решить используя очередь

Создать очередь из n целых чисел

p.s. а вот мне интересно, те, кто дают подобные задания, знают ли, что согласно классическому определению очереди в программировании (см. например, википедию), она всегда FIFO (First In-First Out) - первым пришёл, первым ушёл. Поэтому получить элемент можно всегда ТОЛЬКО с головы очереди, при этом он из очереди УДАЛЯЕТСЯ. Добавлять можно только исключительно в КОНЕЦ очереди.
поэтому:
>вывод на просмотр всех элементов очереди
автоматически должен приводить к полной очистке очереди..
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очередь в СИ Savelia Помощь студентам 4 12.06.2011 14:56
очередь blacktener Общие вопросы C/C++ 1 18.04.2011 02:49
Очередь shelovek Помощь студентам 0 31.10.2010 14:15
Очередь Си savra Помощь студентам 1 22.04.2010 18:48
[C] массивы, указатели, двойные указатели. Iggel Общие вопросы C/C++ 5 05.05.2009 12:39