以前没具体系统学过数据结构,在网上找了下,C/C++/JAVA描述的数据结构铺天盖地,好不容易找了点C#版本的数据结构,于是开始学习,哈哈。
数据结构简单来说就是数据以什么样的方式组合或者排列在一起,因为有了在一起这个概念(因为如果只有一个元素谈不上结构),所以任何数据结构都离不开群集,都是在群集的基础上来谈数据的组织方式。
群集可以分为两类:线性的和非线性的。线性群集是一张元素列表,表中的元素顺次相连,线性群集中的元素通常由位置来决定次序;非线性群集所包含的元素在群集内没有位置次序之分。无论是线性的还是非线性的群集都拥有一套定义好的属性和操作的集合。其中,属性用来描述群集,而操作就是群集能执行的内容。
线性的群集可能是直接存取群集,也可能是顺序存取群集以及索引群集。而非线性的群集既可以是层次群集,也可以是组群集。
直接存取群集,有数组,字符串,结构等,顺序存储群集:栈,队列,索引群集:散列表,字典。
非线性的群集:层次群集:树(二叉树是特殊的树),堆;组群集:集合,图,网络(带权的图)。
在.NET中可通过继承CollectionBase类来实现自己的群集。