0 / 0 / 0
Регистрация: 04.04.2014
Сообщений: 4
|
|
1
|
Преобразовать стек в очередь
24.04.2014, 17:00. Показов 1701. Ответов 0
Pascal | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
| Program rabotniki;
uses crt;
Type
elementtype=record
nam:string[30];
dat:string[10];
adr:string[30];
end;
position=^celltype;
celltype=record
element:elementtype;
next:position;
end;
STACK=^celltype;
STACK2=^celltype;
var
top:STACK; top2:STACK2;
x:elementtype;
p:position;
i,n,j:integer;
function Empty(top: STACK): boolean;
begin
if top = nil then Empty := true
else Empty := false;
end;
procedure Push(x: elementtype; var top: STACK);
Var p: STACK;
begin
new(p);
p^.next:=top;
p^.element:= x;
top:=p;
end;
procedure Pop(var top: STACK; var x: elementtype);
Var p: STACK;
begin
if Empty(top)=False then begin
p:= top^.next;
x:=top^.element;
dispose(top);
top:=p;
end else
writeln('Стек уже пуст')
end;
procedure Scan_SingleList(top: STACK);
var
p: position;
begin
p := top;
while p <> nil do begin
write(p^.element.nam:20);
write(p^.element.dat:20);
writeln(p^.element.adr:20);
p := p^.next;
end;
end;
begin
writeln('Введите количество работников');
readln(N); top:=nil;
for i:=1 to n do
begin
writeln('ФИО');
readln(x.nam);
writeln('Дата рождения');
readln(x.dat);
writeln('Домашний Адрес');
readln(x.adr);
writeln;
PUSH(x,top);
end;
Scan_SingleList(top);
p:=top;
writeln('________________________________________________________________________________');
begin
while top<>nil do begin
Pop(top,x);
if x.nam[1]<>'Я' then
Push(x,top2);
end;
end;
Scan_SingleList(top2);
end. |
|
0
|