
数据结构
Napoleon丶
java菜鸡一枚
展开
-
散列函数的6个构造方法
散列函数的构造方法好的散列函数要求:(1)计算简单,至少散列函数的计算时间不应该超过其他查找技术与关键字比较的时间;(2)计算出的散列地址分布均匀,这样可以保证存储空间的有效利用,并减少为处理冲突而耗费的时间。1. 直接定址法取关键字或关键字的某个线性函数值为散列地址。即H(key)=key或H(key) = a·key + b,其中a和b为常数(这种散列函数叫做自身函数)。原创 2015-03-16 09:22:25 · 2599 阅读 · 0 评论 -
如何判断链表中有无环
单向链表中有环的话,如果我们对此链表进行遍历,则将无穷尽。因此有必要判断一个单向链表是否有环。假如一个单向链表中存在环,如下图:(一个小矩形代表链表中的一个节点)虚线箭头代表中间有无数节点。 先说算法,然后再来证明算法的正确性。 以下算法可以判断一个单向链表中是否有环(不讨论详细数据结构,只简要说明。设结点的next域为指向下一结点的指针):/* 链表的头指针为h原创 2015-03-16 17:11:27 · 502 阅读 · 0 评论 -
单链表逆序
2、 单链表逆序 第二个题目是很经典的“单链表逆序”问题。很多公司的面试题库中都有这道题,有的公司明确题目要求不能使用额外的节点存储空间,有的没有明确说明,但是如果面试者使用了额外的节点存储空间做中转,会得到一个比较低的分数。如何在不使用额外存储节点的情况下使一个单链表的所有节点逆序?我们先用迭代循环的思想来分析这个问题,链表的初始状态如图(1)所示:图(1转载 2015-03-18 17:14:01 · 344 阅读 · 0 评论