comp.lang.ada
 help / color / mirror / Atom feed
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;





  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