这次是帮别人复习复习数据结构。重新看这些问题,除了图论的那些算法,有些东西还真的是忘记了,不过看了下书还好想起来了。
1、10个元素的有序表,等概率条件下折半查找成功的平均查找长度是 29/10 。
画出判定树,其实就是二分转二叉树
数量*层数累加即可。
2. 设有序顺序表中的元素依次为 017, 094, 154, 170, 275, 503, 509,512, 553, 612, 677, 765, 897, 908。试画出对其进行折半搜索时的判定树, 并计算搜索成功的平均搜索长度和搜索不成功的平均搜索长度。
3.设哈希表长m=14,哈希函数H(key)=key%11,表中已有4个结点:
addr(15)=4 addr(38)=5 addr(61)=6 addr(84)=7
其余地址为空
如果采用二次探测再散列处理冲突,关键字为49的结点的地址是 9 。
思路:
15,38,61,84用哈希函数H(key)=key%11计算后得地址:4,5,6,7
49计算后为5,发生冲突.
用二次探测再散列法解决冲突:
1:(key+1^2)%11=(49+1)%11=6,仍然发生冲突.
2:(key-1^2)%11=(49-1)%11=4,仍然发生冲突.
3:(key+2^2)%11=(49+4)%11=9,不再发生冲突.
4、已知待散列存储的线性表为(25,48,32,50,68),散列用的一维地址空间为[0..6],假定选用散列函数为h(k)=k%7,若发生冲突则菜用线性探测再散列的开放定地法解决,试计算出每一元素(即关键字)的存储地址,并计算出等概率条件下的平均查找长度。
三、解:
h(25)=25%7=4 h(48)=48%7=6
h(32)=32%7=4 h1=(4+1)%7=5
h(50)=50%7=1
h(68)=68%7=5
h1=(5+1)%7=6
h2=(5+2)%7=0
68 |
50 |
25 |
32 |
48 |
ASL=(1*3+2*1+3*1)/5=1.6
5.二叉树的复习: http://blog.csdn.net/fansongy/article/details/6798278/
6.图论中的几个算法。