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

推荐订阅源

P
Privacy International News Feed
WordPress大学
WordPress大学
Security Latest
Security Latest
Cyberwarzone
Cyberwarzone
K
Kaspersky official blog
Cisco Talos Blog
Cisco Talos Blog
Microsoft Security Blog
Microsoft Security Blog
G
GRAHAM CLULEY
N
News | PayPal Newsroom
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
美团技术团队
J
Java Code Geeks
I
Intezer
The Cloudflare Blog
SecWiki News
SecWiki News
S
Secure Thoughts
Microsoft Azure Blog
Microsoft Azure Blog
V2EX - 技术
V2EX - 技术
C
Cyber Attacks, Cyber Crime and Cyber Security
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Spread Privacy
Spread Privacy
D
DataBreaches.Net
S
Security Affairs
Help Net Security
Help Net Security
S
Securelist
F
Full Disclosure
C
Check Point Blog
F
Fortinet All Blogs
Know Your Adversary
Know Your Adversary
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Y
Y Combinator Blog
云风的 BLOG
云风的 BLOG
阮一峰的网络日志
阮一峰的网络日志
The Register - Security
The Register - Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
人人都是产品经理
人人都是产品经理
博客园_首页
G
Google Developers Blog
Google Online Security Blog
Google Online Security Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Help Net Security
酷 壳 – CoolShell
酷 壳 – CoolShell
I
InfoQ
Application and Cybersecurity Blog
Application and Cybersecurity Blog
H
Hacker News: Front Page
L
LINUX DO - 热门话题
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LangChain Blog

博客园 - 望天

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

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