写半年多的程序,发现自己的底子有些差,以前学数据结构的时候没有好好的弄明白。现在慢慢的感觉到了缺乏基础上层建筑就不稳定的尴尬局面了。在卓越网上定了一本C#描述的数据结构书,想我这样就熟悉java和C#人,看伪代码还是困难些,索性找本自己熟悉的语言来回顾查阅基础算法。
首先讲到数据结构化处理手段就是使用一定的框架来放置数据,这就是数据结构的来源,抽象到顶层就是一个群集(Collection)的概念----存储数据并提供一定的方法和属性,用对象的方法描述它。它分为线性和非线性的群集。线性的理解起来就是一个顺序排开的列表,这个列表有位置因素来描述他们,或者相对位置。非线性的就像 树、图、堆和集 都是没有位置次序之分的群集。总的来看就是单一个数好处理,它处在0维上;多余一个的数字一字排开,处于一维模式上;用二维模式以上来表述的属于非线性的群集了。群集都拥有一套定义好的属性和方法。
群集的子类:具体到实现这两种抽象类有线性群集有:直接存取群集和顺序存储群集,非线性群集有层次的和组群集。
直接存储群集:数组,字符串,结构
顺序存储群集:线性表,栈,队列
索引群集:散列表HashTable,字典(联合)
非线性的:层次群集和组群集
层次群集:树--二叉树 或者堆
组群集:集合,图,网络