比赛 |
暑假培训五 |
评测结果 |
C |
题目名称 |
队列基本操作 |
最终得分 |
0 |
用户昵称 |
maxiem |
运行时间 |
0.000 s |
代码语言 |
Pascal |
内存使用 |
0.00 MiB |
提交时间 |
2008-07-22 10:58:42 |
显示代码纯文本
program queue;
type node=record
next,n:integer;
use:boolean;
end;
var
q:array [1..10] of node;
p,code,i,last,now,head,num,n,c,d:integer;
str:string;
flag:boolean;
procedure print(node,n:integer);
begin
if n<num+1 then begin
write (q[node].n,' ');
print(q[node].next,n+1);
end;
end;
begin
fillchar (q,sizeof(q),0);
assign (input,'queue.in');
reset (input);
readln (n);now:=1;head:=1;
assign (output,'queue.out');
rewrite (output);
for i:=1 to n do begin
readln(str);
if length(str)=1 then val(str,c,code) else begin
p:=pos(' ',str);
val(copy(str,1,p-1),c,code);
val(copy(str,p+1,length(str)-p),d,code);
end;
case c of
1:begin head:=1 end;
2:begin
q[now].use:=true;flag:=false;
for i:=1 to 10 do if q[i].use=false then begin
q[now].next:=i;flag:=true;
break;
end;
if not(FLAG) then begin
writeln ('queue out');
close(output);
halt;
end;
q[now].n:=d;
now:=q[now].next;last:=now;inc(num);
end;
3:begin
head:=q[head].next;
if head=last then begin
writeln ('queue empty');
close (output);
halt;
end;
dec(num);
end;
4:begin
writeln(num);
print(head,1);
end;
end;
end;
close (input);
close (output);
end.