一、TOrderedList类
1.1 1.1 TOrderedList类概述
TOrderedList类维护了一个可以被有序访问的指针数组;它聚合了TList类,通过TList类对象来实现存储一系列指针并且可以被有序的访问。TOrderedList类
是一个描述列表的抽象类,可以通过派生类来实现它的PushItem方法从而来决定它的被访问的方式。
1.2 1.2 方法
1.2.1 constructor Create;
TOrderedList类的构造函数,它调用父类的构造函数,然后创建一个TList类的对象。
1.2.2 destructor Destroy; override;
TOrderedList类的析构函数,它先释放TList类的对象,然后再调用父类的析构函数。
1.2.3 function Count: Integer;
该方法返回此TOrderedList类维护的List列表的大小。
1.2.4 function AtLeast(ACount: Integer): Boolean;
该方法用于核查List的大小,当此类维护的列表大小大于或者等于ACount时返回为True。
1.2.5 function Push(AItem: Pointer): Pointer;
向List列表中压入一个指针,它调用抽象方法protected PushItem,此方法将在派生类中实现以达到不同次序访问列表的目的。
1.2.6 function Pop: Pointer;
此方法将返回List列表的最后一个域的指针,并删除此域。
1.2.7 function Peek: Pointer;
此方法将只返回List列表的最后一个域的指针。
二. 二、TStack类
2.1 2.1 TStack类概述
TStack类实现了堆栈的数据结构,即是实现了Last-in and First-out访问方式的指针数组;它是由TOrderedList类派生而来。
2.2 2.2 方法
它实现了父类的PushItem抽象方法,如:
procedure TStack.PushItem(AItem: Pointer);
begin
List.Add(AItem);
end;
由于这里使用的是TList类的Add方法,即每次讲新进的指针都添加到List列表的最后。于是,当Pop时所取得的指针就是刚新加去的指针了,从而实现了堆栈的
数据结构。其存储形式如图:
三. 三、TQueue类
3.1 3.1 TQueue类概述
TQueue类实现了队列的数据结构,即是实现了First-in and First-out访问方式的指针数组;它是由TOrderedList类派生而来。
3.2 3.2 方法
同样它也实现了父类TOrderedList类的抽象方法PushItem,如:
procedure TQueue.PushItem(AItem: Pointer);
begin
List.Insert(0, AItem);
end;
同理,由于这里使用的是TList类的Insert方法,即每次讲新进的指针都插入到List列表的第一个位置。于是,当Pop时所取得的指针都是列表中最后一个位置
的指针了,从而实现了队列的数据结构。其存储形式如图: