因为下学期要学数据结构,就先看算法导论的这个部分。
栈,队列,树,链表都很简单,以前学过,就不关注了。
然后看散列表,很郁闷,比较难懂。连续看了好几天,又在网上搜了别人的文章,总算有所了解。
就写个学习笔记。
散列表,是一种数据结构,主要用于快速查找。
结构可以这样定义:
struct hashnode{
keytype key; //关键字数据类型可为任意
othertype other; //可包含其他数据,如链表头指针
};
hashnode hashtable[10];
其可以快速查找的原因是使用hash函数,对关键字k进行直接寻址即hashtable[i],i=h(k),则可在期望为o(1)的时间内进行字典操作。
常用的hash函数:
这里的hash函数要满足两个要求:简单,计算hashtable下标时不能过于复杂