1. 数据结构的定义。
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率的算法。数据结构往往同高效的检索算法和索引技术有关。
2. 栈的两个应用:括号匹配和表达式的计算。是怎么应用的?表达式计算用的是哪种表达方式?有什么好处?
3. 字符串匹配算法:朴素的匹配算法、KMP算法。
http://blog.csdn.net/seuliujiaguo/article/details/38942655
4. 二叉树前序、中序、后序递归遍历算法。二叉树前序非递归遍历算法。
5. 堆,建堆算法,堆的插入和删除算法,堆排序。
http://blog.csdn.net/morewindows/article/details/6709644
6. 哈希。哈希函数的有哪些种?余数的取法? 处理冲突的方法? 闭散列方法有哪些?
http://blog.csdn.net/xiaoweige207/article/details/6211926
http://blog.sina.com.cn/s/blog_64e21a0a0100hy8a.html
处理冲突的方法
一、开放定址法
1. 线性探测法
2. 二次探测法
4. 双哈希函数探测法
二、链地址法
构造哈希函数的常用方法
一、直接定址法
Hash(key)=a·key+b (a、b为常数)
二、除留余数法
Hash(key)=key mod p (p是一个整数)
三、数字分析法
设关键码集合中,每个关键码均由m位组成,每位上可能有r种不同的符号。
四、平方取中法
对关键码平方后,按哈希表大小,取中间的若干位作为哈希地址。
7. 二叉搜索树的搜索、插入、删除。时间复杂度。
void BinaryTree::Insert(const int&data,Node* &b)
{
if(b==NULL)
{
b=newNode(data);
}
elseif (data<b->info)
{
Insert(data,b->lchild);
}
else
{
Insert(data,b->rchild);
}
}
http://blog.csdn.net/seuliujiaguo/article/details/39162421
8. 二叉平衡树的插入结点的原理,有哪几种旋转方式?分别适用于哪种情况。分析二叉平衡树的时间复杂度。
http://www.cnblogs.com/guyan/archive/2012/09/03/2668399.html
9. 红黑树的定义,红黑树的性能分析和与二叉平衡树的比较。
http://www.cnblogs.com/fanzhidongyzby/p/3187912.html#
10. 图有哪些储存表示。
http://book.51cto.com/art/201007/209723.htm
http://blog.csdn.net/hguisu/article/details/7712813
11. 链表插入排序、链表归并排序。
12. 常见的有哪几种排序算法,试比较其时间复杂度,以及是否稳定,及各自使用的情形。
13. 常用分配排序有哪几种? 基数排序的定义,分类及原理。
14. 外部排序的过程。
15. B树、B+树、Trie的概念及用途,添加删除结点的原理。
http://blog.csdn.net/hguisu/article/details/8131559
http://www.cnblogs.com/oldhorse/archive/2009/11/16/1604009.html