From: Simon Wright <simon@pogner.demon.co.uk>
Subject: Re: Ada Queue
Date: 2000/04/07
Date: 2000-04-07T00:00:00+00:00 [thread overview]
Message-ID: <x7vu2hdoex3.fsf@pogner.demon.co.uk> (raw)
In-Reply-To: 38eca724@news.hamilton.edu
"Joseph T." <thisthat7@hotmail.com> writes:
> Can anyone corroborate why I chose to make this enqueue function using the
> passed pointer to Q instead of the temp pointer to loop through the queue?
> Any suggestions, ideas, compliments, critiques are greatly appreciated.
> Please help.
>
> procedure Enqueue(Q: in out Queue; E : Element_type) is
> New_Queue : Queue;
>
> begin
> if Q /= null then
> New_Queue := Q;
> while Q.Rest /= null loop
> Q := Q.Rest;
> end loop;
> Q.Rest := new QueueNode;
> Q := Q.Rest;
> Q.Data := E;
> Q.Rest := null;
> Q := New_Queue;
> else
> Q := new QueueNode;
> Q.Data := E;
> Q.Rest := null;
> end if;
> end Enqueue;
Personally I don't think you should mess with the parameter like
this. The temporary variable is the one you should use for traversing
the Queue to find its end.
procedure Enqueue(Q: in out Queue; E : Element_type) is
begin
if Q /= null then
declare
Last : Queue := Q;
begin
while Last.Rest /= null loop
Last := Last.Rest;
end loop;
Last.Rest := new QueueNode'(Data => E,
Rest => null);
end;
else
Q := new QueueNode'(Data => E,
Rest => null);
end if;
end Enqueue;
next prev parent reply other threads:[~2000-04-07 0:00 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-04-06 0:00 Ada Queue Joseph T.
2000-04-06 0:00 ` Ted Dennison
2000-04-06 0:00 ` Joseph T
2000-04-06 0:00 ` tmoran
2000-04-08 0:00 ` tmoran
2000-04-06 0:00 ` Ted Dennison
2000-04-06 0:00 ` Joseph T.
2000-04-07 0:00 ` Ole-Hjalmar Kristensen
2000-04-07 0:00 ` Joseph T
2000-04-07 0:00 ` Ted Dennison
2000-04-07 0:00 ` Ted Dennison
2000-04-07 0:00 ` Hyman Rosen
2000-04-06 0:00 ` Robert Dewar
2000-04-06 0:00 ` Joseph T
2000-04-07 0:00 ` Ole-Hjalmar Kristensen
2000-04-06 0:00 ` Ted Dennison
2000-04-07 0:00 ` MaggieJohn
2000-04-07 0:00 ` Ted Dennison
2000-04-07 0:00 ` Simon Wright [this message]
2000-04-09 0:00 ` Robert Dewar
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox