Delphi容器类之---TOrderedList、TStack、TQueue、TObjectStack、TObjectQueue
来源:互联网 发布:mac为什么会全灭 编辑:程序博客网 时间:2024/06/04 19:41
TOrderedList、TStack、TQueue
Contnrs单元还定义了其他三个类:TOrderedList、TStack、TQueue
TOrderedList
1
2
3
4
5
6
7
8
9
10
11
12
13
TOrderedList =
class
(TObject)
private
FList: TList;
protected
procedure
PushItem(AItem:
Pointer
); virtual; abstract;
...
public
function
Count:
Integer
;
function
AtLeast(ACount:
Integer
):
Boolean
;
procedure
Push(AItem:
Pointer
);
function
Pop:
Pointer
;
function
Peek:
Pointer
;
end
;
TStack
1
2
3
4
TStack =
class
(TOrderedList)
protected
procedure
PushItem(AItem:
Pointer
); override;
end
;
TQueue
1
2
3
4
TQueue =
class
(TOrderedList)
protected
procedure
PushItem(AItem:
Pointer
); override;
end
;
要注意,虽然TOrderedList并不是从TList继承的,但是它在内部的实现时,使用了TList来存储指针。另外注意TOrderedList类的 PushItem过程是一个抽象过程,所以我们无法实例化TOrderList 类,而应该从TOrderList继承新的类,并实现抽象的PushItem 方法。
因此TStack、TQueue继承自TOrderedList,所以TStack、TQueue的指针也是存在其内部的TList中的。
TStack和TQueue正是实现了PushItem 抽象方法的类,我们可以实例化TStack和TQueue类作为后进先出的堆栈(LIFO)和先进先出的队列(FIFO)。下面是这两个类的方法的使用说明:
- Count 返回列表中的项目数。
- AtLeast 可以用来检检查链表的大小,判断当前列表中的指针数目是否大于传递的参数值,如果为True便是列表中的项目数大于传来的参数。
- Push 对于TStack类,Push方法将指针添加到链表的最后,对于TQueue类,Push方法则将指针插入到链表的开始。
- Pop 返回链表的末端指针,并将其从链表中删除。
- Peek 返回链表的末端指针,但是不将其从链表中删除。
TObjectStack、TObjectQueue
Contnrs单元中最后两个类是TObjectStack和TObjectQueue类,类的定义如下
TObjectStack
1
2
3
4
5
6
TObjectStack =
class
(TStack)
public
procedure
Push(AObject: TObject);
function
Pop: TObject;
function
Peek: TObject;
end
;
TObjectQueue
1
2
3
4
5
6
TObjectQueue =
class
(TQueue)
public
procedure
Push(AObject: TObject);
function
Pop: TObject;
function
Peek: TObject;
end
;
这两个类只是TStack和TQueue 类的简单扩展,在链表中保存的是TObject的对象引用,而不是简单的指针。
0 0
- Delphi容器类之---TOrderedList、TStack、TQueue、TObjectStack、TObjectQueue
- Delphi 2009 泛型容器单元(Generics.Collections)[2]: TQueue
- Delphi中TQueue的使用
- delphi 中TObjectQueue使用注意点
- delphi中TQueue的使用问题
- Delphi中的容器类
- Delphi中的容器类
- Delphi中的容器类
- Delphi中的容器类
- Delphi中的容器类
- Delphi中的容器类
- delphi 容器类
- delphi 容器类 2
- delphi 容器类 3
- Delphi 中的容器类
- Delphi中的容器类
- Delphi容器类之---TList、TObjectList、TComponentList、TClassList的使用
- Delphi容器类之---Tlist,TStringlist,THashedStringlist的效率比较
- Java POI 导出EXCEL经典实现 Java导出Excel弹出下载框 【不定期更新】
- Android 属性动画来实现帧动画的炫酷效果
- 详细解析xcorr
- NTP服务放大攻击的解决办法
- java list移除null元素
- Delphi容器类之---TOrderedList、TStack、TQueue、TObjectStack、TObjectQueue
- Mybatis与Ibatis比较
- Java中的 构造方法
- docker笔记
- 【Java开发手册之编程规约(九)】其它
- I/O输入输出流
- 求React 兼容性 debug指点
- 什么叫面向接口编程以及面向接口编程的好处
- Delphi容器类之---TList、TObjectList、TComponentList、TClassList