1、具备计算机程序设计的能力,掌握一般的数据结构和算法,数据结构包括但不限于数组,链表,堆,栈,队列,树,图,hash表等。
数组:
数组时一种可以通过计算下标来访问一组变量的数据结构。一维数组可以看做是一个顺序存储结构的线性表,二维数组的定义是“其数据元素为一维数组”的线性表。
在C#中声明数组的表达式为:
int[] mat = new int[10] ; //一维
int[,] mat = new int[10,5]; //二维
int[][] a = new int[3][] ; //锯齿数组
更具体参见:http://www.cnblogs.com/kulong995/articles/1400718.html
链表:
链表是被称为节点的类对象的群集。每一个节点通过一个引用链接到列表内的后继节点上。节点包括存储数据的字段和节点引用的字段。到另外一个节点的引用被称为是链接。
更具体参见: http://www.cnblogs.com/kulong995/articles/1679936.html
堆:
堆是一种经过排序的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。
更具体见堆排序:http://www.cnblogs.com/kulong995/articles/1385635.html
栈: LIFO表,只允许在栈的一端进行操作,称为栈顶。不允许操作得一端称为栈底。
更具体见:http://www.cnblogs.com/kulong995/articles/1390617.html
队列:FIFO表,其插入和删除操作分别在两端进行。插入过程称为入队,删除过程称为出队。
更具体见:http://www.cnblogs.com/kulong995/articles/1400709.html
树:树是由n(n>=0)个节点组成的有限集合。n=0的树称为空树;对n>0的树T有:
有一个特殊的节点称为根节点(root),它只有直接后继节点,没有直接的前驱节点。
当n>1时,除根节点之外的其他节点分为m(m>=0)个互不相交的集合T1,T2,...Tm。其中每个集合Tm(1<=i && i<=m)本身又是一棵结构与树类同的子树。每棵子树的根节点有且仅有一个直接前驱节点,但可以有零或多个直接后继节点。
更具体见:http://www.cnblogs.com/kulong995/articles/1436267.html
二叉树:二叉树是n(n>=0)个节点组成的有限集合。n=0时称为空二叉树;n>0的二叉树由一个根节点和两棵互不相
交的、分别称为左子树和右子树的二叉树构成。
更具体见:http://www.cnblogs.com/kulong995/articles/1436318.html
图:图太复杂了。
更具体见:http://www.cnblogs.com/kulong995/articles/1436669.html
hash表:哈希也称为散列。是一种常见的存储数据的技术,采用这种技术可以非常迅速地插入和检索数据。