Browse Source

+ Implemented stack and queue (untested)

michael 23 years ago
parent
commit
e814c211e8
1 changed files with 39 additions and 21 deletions
  1. 39 21
      fcl/inc/contnrs.pp

+ 39 - 21
fcl/inc/contnrs.pp

@@ -383,104 +383,122 @@ end;
 
 Function TOrderedList.AtLeast(ACount: Integer): Boolean;
 begin
-
+  Result:=(FList.Count>=Acount)
 end;
 
 Function TOrderedList.Count: Integer;
 begin
-
+  Result:=FList.Count;
 end;
 
 constructor TOrderedList.Create;
 begin
-
+  FList:=Tlist.Create;
 end;
 
 destructor TOrderedList.Destroy;
 begin
-  inherited;
-
+  FList.Free;
 end;
 
 Function TOrderedList.Peek: Pointer;
 begin
-
+  If AtLeast(1) then
+    Result:=PeekItem;
+  else
+    Result:=Nil;
 end;
 
 Function TOrderedList.PeekItem: Pointer;
 begin
-
+  With Flist do
+    Result:=Items[Count-1]
 end;
 
 Function TOrderedList.Pop: Pointer;
 begin
-
+  If Atleast(1) then
+    Result:=PopItem;
+  else
+    Result:=Nil;
 end;
 
 Function TOrderedList.PopItem: Pointer;
 begin
-
+  With FList do
+    If Count>0 then
+      begin
+      Result:=Items[Count-1];
+      Delete(Count-1);
+      end;
+    else
+      Result:=Nil;
 end;
 
 Function TOrderedList.Push(AItem: Pointer): Pointer;
 begin
-
+  PushItem(Aitem);
+  Result:=AItem;
 end;
 
 { TStack }
 
 Procedure TStack.PushItem(AItem: Pointer);
 begin
-
+  FList.Add(Aitem);
 end;
 
 { TObjectStack }
 
 Function TObjectStack.Peek: TObject;
 begin
-
+  Result:=TObject(Inherited Peek);
 end;
 
 Function TObjectStack.Pop: TObject;
 begin
-
+  Result:=TObject(Inherited Pop);
 end;
 
 Function TObjectStack.Push(AObject: TObject): TObject;
 begin
-
+  Result:=TObject(Inherited Push(Pointer(AObject)));
 end;
 
 { TQueue }
 
 Procedure TQueue.PushItem(AItem: Pointer);
 begin
-
+  With Flist Do
+    Insert(0,AItem);
 end;
 
 { TObjectQueue }
 
 Function TObjectQueue.Peek: TObject;
 begin
-
+  Result:=TObject(Inherited Peek);
 end;
 
 Function TObjectQueue.Pop: TObject;
 begin
-
+  Result:=TObject(Inherited Pop);
 end;
 
 Function TObjectQueue.Push(AObject: TObject): TObject;
 begin
-
+  Result:=TObject(Inherited Push(Pointer(Aobject)));
 end;
 
-
 end.
 
+
 {
   $Log$
-  Revision 1.3  2002-07-26 11:26:26  michael
+  Revision 1.4  2002-08-09 09:44:33  michael
+    + Implemented stack and queue (untested)
+
+  Revision 1.3  2002/07/26 11:26:26  michael
   + Initial implementation. Untested
 
   Revision 1.2  2002/07/21 12:04:49  michael
@@ -489,4 +507,4 @@ end.
   Revision 1.1  2002/07/16 13:34:39  florian
     + skeleton for contnr.pp added
 
-}
+}