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

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

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

> Все тот же дек
Dao
сообщение 19.10.2004 20:14
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 14

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


Я понимаю, что достал уже всех с деком, но сам че-то разобраться не могу. Так что поможите люди добрые. Условие задачи:
Цитата
Из элементов стека и очереди составить дек.

Очередь и стек я сформировал, а вот дальше...

Type
   point=^item;
   item=record
            elem: Char;
            next: point;
         end;
Var
   topS, topQ, endQ: point;
   n: Integer;
   c, d, a: Char;

{Формирование первого элемента стэка}

Procedure FormStack (Var topS: point; c: Char);
Begin
   New (topS);
   topS^.next:=Nil;
   topS^.elem:=c;
End;

{Добавление элементов в стэк}

Procedure DobStack (Var topS: point; c: Char);
Var
   s: point;
Begin
   New (s);
   s^.next:=topS;
   topS:=s;
   s^.elem:=c;
End;

{Формирование первого элемента очереди}

Procedure FormQueue (Var topQ, endQ: point; d: Char);
Begin
   New (topQ);
   topQ^.next:=Nil;
   topQ^.elem:=d;
   endQ:=topQ;
End;

{Добавление элементов в очередь}

Procedure DobQueue (Var endQ: point; d: Char);
Var
   q: point;
Begin
   New (q);
   q^.next:=Nil;
   endQ^.next:=q;
   endQ:=q;
   endQ^.elem:=d;
End;

{Основная программа}

Begin
   Repeat
      n:=1;
      Writeln ('');
      Write ('Введите ',n,' элемент стэка: ');
      Readln( c );
      FormStack (topS, c);
      Repeat
         n:=n+1;
         Write ('Введите ',n,' элемент стэка: ');
         Readln (c);
         DobStack (topS, c);
      Until c='.';

      n:=1;
      Write ('Введите ',n,' элемент очереди: ');
      Readln (d);
      FormQueue (topQ, endQ, d);
      Repeat
         n:=n+1;
         Write ('Введите ',n,' элемент очереди: ');
         Readln (d);
         DobQueue (endQ, d);
      Until d='.';

      Writeln ('');
      Writeln ('Повторить?(y/n)');
      Readln (a);
   Until a<>'y';
End.

sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 

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