我们研究数据结构,主要是研究它的四个方面:数据结构;定义与之对应的基本运算;设计相应算法;分析算法的效率。其中,第一部分数据结构的研究又主要分为两种:数据的物理结构和逻辑结构。所谓数据的物理结构,就是数据在计算机内存中存储的结构;所谓逻辑结构就是数据与数据之间的逻辑关系。在.NET类库框架下,我们没有一个泛化的集合类来存储数据,但是我们可以利用一个抽象类-----CollectionBase来创建我们自己的集合类。CollectionBase类可以让我们创建自定义的Collection类,而且这个类隐式地为我们提供了创建Collection class的两个必须的接口:ICollection, IEnumerable。
接下来,就首先讨论一下如何利用C#创建我们自己的Collection Class,我们可以利用抽象类CollectionBase以及重写它所提供的一系列抽象方法来定义自己的Collection类。最为重要的是,CollectionBase为我们提供了一种底层的数据结构------InnerList(它是一种ArrayList),我们可以把包含InnerList的CollectionBase类作为我们创建一切自定义集合类的基类。
我们要想在自己创建的集合类中提供具体的方法实现,就必须利用到内置数据结构类---InnerList,通过重写或者隐藏基类InnerList的方法来为我们自定义的数据结构类提供一些对数据结构的最常用操作,比如:Add, Remove, Count, Clear等等。
下面是创建代码以及测试它的实例:
通过上面的代码,我们能够创建自己的数据结构类MyCollection,并且对其进行相应的操作。