![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Dao |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Репутация: ![]() ![]() ![]() |
Я понимаю, что достал уже всех с деком, но сам че-то разобраться не могу. Так что поможите люди добрые. Условие задачи:
Цитата Из элементов стека и очереди составить дек. Очередь и стек я сформировал, а вот дальше... 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.
![]() |
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 1:47 |