惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

NISL@THU
NISL@THU
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Threatpost
Cloudbric
Cloudbric
H
Heimdal Security Blog
P
Privacy International News Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Tor Project blog
A
Arctic Wolf
W
WeLiveSecurity
SecWiki News
SecWiki News
S
Security Affairs
Schneier on Security
Schneier on Security
PCI Perspectives
PCI Perspectives
Simon Willison's Weblog
Simon Willison's Weblog
K
Kaspersky official blog
P
Privacy & Cybersecurity Law Blog
AWS News Blog
AWS News Blog
T
The Exploit Database - CXSecurity.com
V2EX - 技术
V2EX - 技术
AI
AI
Google DeepMind News
Google DeepMind News
Stack Overflow Blog
Stack Overflow Blog
博客园 - 司徒正美
有赞技术团队
有赞技术团队
C
Cybersecurity and Infrastructure Security Agency CISA
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 聂微东
H
Hacker News: Front Page
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
The Hacker News
The Hacker News
阮一峰的网络日志
阮一峰的网络日志
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
月光博客
月光博客
博客园 - 【当耐特】
Recorded Future
Recorded Future
O
OpenAI News
Hacker News: Ask HN
Hacker News: Ask HN
Scott Helme
Scott Helme
N
News and Events Feed by Topic
Help Net Security
Help Net Security
GbyAI
GbyAI
Google DeepMind News
Google DeepMind News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Y
Y Combinator Blog
Martin Fowler
Martin Fowler
小众软件
小众软件

博客园 - 望天

Web 2.0 网站架构不可或缺的图书 值得收藏的146条民间小偏方 回龙观常用电话 AJAX页面呈现模式选择 AJAX富客户端开发 Ajax框架介绍 EBS架构及实现业务特点 ASP.net 大文件上传 实现 架构师要了解那些?? witLuo介绍 网络负载平衡转发技术简介(转载) 双网卡实现负载均衡技术的实现与原理 AOP方法调用消息截获(之realproxy) Server Application Unavailable 事务处理可选方式 C# 注册COM+组件步骤 在分布式事务中登记时出错 由TObject原码对类的内存分配 TStream类
TOrderedList类
望天 · 2006-11-16 · via 博客园 - 望天

 一、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时所取得的指针都是列表中最后一个位置

的指针了,从而实现了队列的数据结构。其存储形式如图: