求职技术题目收集① 数据结构

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表:哈希也称为散列。是一种常见的存储数据的技术,采用这种技术可以非常迅速地插入和检索数据。

更具体见:http://www.cnblogs.com/kulong995/articles/1436667.html

原文地址:https://www.cnblogs.com/kulong995/p/1679651.html