本文实例讲述了C#数据结构之顺序表(SeqList)实现方法。分享给大家供大家参考,具体如下:

线性结构(Linear Stucture)是数据结构(Data Structure)中最基本的结构,其特征用图形表示如下:


即:每个元素前面有且只有一个元素(称为“前驱”),同样后面有且只有一个元素(称为"后继")--注:起始元素的前驱认为是空,末尾元素的后继认为也是空,这样在概念上就不冲突了。

线性表(List)是线性结构的一种典型实现,它又可以分为:顺序表(SeqList)和链表(LinkList)二大类.

顺序表(SeqList)的基本特征为:元素在内部存储时是一个接一个在存储单元中按顺序存储的,所以只要知道"起始元素的存储地址"--称为顺序表的基地址(Base Address)以及顺序表中任何元素的位置(即它是第几个元素),就能直接定位到该元素的地址,从而直接访问到该元素的值。也就是说存储/读取每个元素所用的时间是相同的,即所谓的“随机存取”

C#语言中数组(Array)在内存中占用的就是一组连续的存储区域,所以用数组来实现顺序表再适用不过。

先来定义线性表的通用接口IListDS.cs(注:DS为DataStructure的缩写)

?

顺序表(SeqList)的实现:

?

测试代码片段:

?

顺序表的优点:读取元素时可直接定位,所以在某些操作(比如将顺序表元素反转合围)中,不需要完全遍历,循环次数(即时间复杂度)相对完全遍历而言能减少一半。

顺序表的优点:插入/删除元素,因为要保持其顺序性,所以后续元素需要移动,增加了时间开销。

最后指出:.Net命名空间System.Collections.Generic中的List就是一个内置的顺序表.

希望本文所述对大家C#程序设计有所帮助。