摘要:
BitArray 类是按照紧密格式来表示位集合。虽然我们能把位集合存储在常规数组内,但是如果采用专门为位集合设计的数据结构就能够创建更加有效的程序。BitArray 类用来处理位集合。位集合可以用来有效地表示Boolean(布尔)值的集合。BitArray和ArrayList 十分类似,这是因为可以对BitArray 进行动态地大小调整,而且在需要时添加二进制位而不用担心数组越界的问题。 1.使用BitArray 类。通过实例化BitArray 对象就可以创建BitArray,并且同时会把希望在数组内的二进制位的数量传送给构造器。如下 BitArray BitSet = new BitArra 阅读全文
摘要:
队列是一种把数据从表的末端放入并在表的前端移除的数据结构。队列会按照数据项出现的顺序来存储它们。队列是先进先出(FIFO)数据结构的实例。队列用 来对提交给操作系统或打印池的任务进行排序,而模拟应用程序则用队列对用户等待队列进行模拟。队列包含两种主要的操作。一个是给队列添加新的数据项,另一 个则是把数据项从队列中移除。添加新数据项的操作被称为是Enqueue,而从队列中移除数据项的操作则被称为是Dequeue。Enqueue 操作会在队列的末尾添加一个数据项,而Dequeue 操作则会从队列的前端(或开始处)移除一个数据项。(1).Queue类。下面这个Queue 类的实现包含EnQueue 阅读全文
摘要:
堆栈和队列是两种面向表的数据结构,它们都提供了易于理解的抽象。堆栈中的数据只能在表的某一端进行添加和删除操作,反之队列中的数据则在表的一端进行添加操作而在表的另一端进行删除操作。堆栈被广泛用于从表达式计算到处理函数调用的任何编程语言的实现中。而队列则用在区分优先次序的操作系统处理以及模拟现实世界的事件方面,比如银行出纳柜台的队列,以及建筑物内电梯的操作。C#语言为使用这些数据结构提供了两种类:Stack 类和Queue 类。1.堆栈。堆栈是最频繁用到的数据结构之一。这里把堆栈定义为数据项的列表,而且这些数据项只能从表的末端进行存取访问。可存取访问的这端被称为是栈顶。堆栈的标准模型是自助餐厅的盘 阅读全文
摘要:
数据查找是基础的计算机编程工作,而且人们对它的研究已经很多年了。有两种对列表内数据进行查找的方法:顺序查找和二叉查找。当数据项在列表内随机排列的时候可以使用顺序查找,而当数据项在列表内有序排列的时候则会用到二叉查找。1.顺序查找算法。最突出的查找类型就是从记录集的开始处顺次遍历每条记录,直到找到所要的记录或者是到达数据集的末尾。这就是所谓的顺序查找。顺序查找(也被称为线性查找)是非常容易实现的。从数组的起始处开始,把每个访问到的数组元素依次和所要查找的数值进行比较。如果找到匹配的数据项,就结束查找操作。如果遍历到数组的末尾仍没有产生匹配,那么就说明此数值不在数组内。下面是一个执行顺序查找操作. 阅读全文
摘要:
在计算机中实现存储数据最普遍的两种操作就是排序和查找。这是从计算机产业初始就已经确认的了。这意味着排序和查找也是计算机科学领域最值得研究的两种操作。这些简单算法就是插入排序算法、冒泡排序算法以及选择排序算法。这些算法的每一种都很容易理解和实现。对于任意情况而言这些算法不是最好的全面算法,但是对于少量数据集合或者其他特殊情况而言,它们是可用的最好算法。1.冒泡排序。冒泡排序是可用的最慢排序算法之一,但是它也是最容易理解和实现的排序算法之一。这种排序算法的得名是由于数值“像气泡一样”从序列的一端浮动到另一端。假设现在要把一列数按升序方式进行排序,即较大数值浮动到列的右侧,而较小数值则浮动到列... 阅读全文
摘要:
当无法提前知道数组的大小或者在程序运行期间数组的大小可能会发生改变的时候,静态数组就不是很适用了。这类问题的一种解决方案就是当数组超出存储空间的时使用能够自动调整自身大小的数组类型。这种数组被称为是ArrayList 。它是.NET 框架库中System.Collections 命名空间的内容。ArrayList 对象拥有可存储数组大小尺寸的Capacity 属性。该属性的初始值为16。当ArrayList中元素的数量达到此界限值时,Capacity 属性就会为ArrayList 的存储空间另外增加16 个元素。在数组内元素数量有可能扩大或缩小的情况下使用ArrayList 会比用带标准数组的 阅读全文
摘要:
面向对象编程的问题之一就是所谓“代码膨胀”的特征。为了说明方法参数所有可能的数据类型而需要重载某种方法或重载一套方法集合的时候,就会发生某种类型的代码膨胀。代码膨胀的解决方案之一就是使某个值呈现多种数据类型的能力,同时仅提供此值的一种定义。这种方法被称为是范型编程。范型编程提供数据类型“占位符”。它在编译时由特定的数据类型填充。这个占位符用一对尖括号(< >)和放在括号间的标识符来表示。下面来看一个实例staticvoidSwap<T>(refTval1,refTval2){Ttemp;temp=val1;val1=val2;val2=temp;} 立刻把数据类型占位符 阅读全文
摘要:
1.定义Collection 类 在C#语言中定义一个Collection 类最简单的方法就是把在System.Collections 库中已找到的抽象类CollectionBase 类作为基础类。此类提供了一套可以实现构造自身群集的抽象方法集合。CollectionBase 类还提供了一种基础的数据结构——InnerList(一个ArrayList)。此结构可以用作自身类的基础。本章节会看到如何使用CollectionBase 来构造Collection类。 2. 实现Collection 类 弥补Collection 类的全部方法包括一些与类的基础数据结构InnerList 相交互的类型。 阅读全文