Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program queue3(input,output);
- type
- list=^node;
- node=record
- elem: integer;
- next: list
- end;
- queue=record
- start: list;
- fin: list
- end;
- procedure init(var q: queue);
- begin
- q.start:=nil;
- q.fin:=nil
- end;
- function isempty(var q: queue): boolean;
- begin
- isempty:=q.start=nil;
- end;
- procedure pushQ(var q: queue; e: integer);
- var p: list;
- begin
- new(p);
- p^.elem:=e;
- p^.next:=nil;
- with q do
- begin
- if(start=nil) then
- start:=p
- else
- fin^.next:=p;
- fin:=p;
- end;
- end;
- procedure popQ(var q: queue; e: integer);
- var p: list;
- begin
- if(isempty(q)) then
- write('error')
- else
- begin
- e:=q.start^.elem;
- p:=q.start;
- q.start:=q.start^.next;
- dispose(p);
- if(q.start=nil) then q.fin:=nil;
- end;
- end;
- var f: file of integer;
- c,d: integer;
- och: queue;
- begin
- assign(f,'input.txt');
- read(c);
- rewrite(f);
- while(c<>0) do
- begin
- if(c<0) then
- write(f,c)
- else
- pushQ(och,c);
- read(c);
- end;
- reset(f);
- while(not(eof(f))) do
- begin
- read(f,d);
- write(d,' ');
- end;
- while(not(isempty(och))) do
- begin
- popQ(och,c);
- write(c,' ');
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment