您好,欢迎来到微智科技网。
搜索
您的当前位置:首页2013年暨南大学数据结构考研试题答案

2013年暨南大学数据结构考研试题答案

来源:微智科技网
一、 选择题 1.C 2.D 3.C 4.C 5.A 6.C 7.C 8.C 9.A 10.A 二、 填空题 1. 三元数组存储、十字链表 2. 一对一、一对多 3. 2n-1

4. 计算简单,散列之后得到的元素分布均匀 5. 前驱、后继 6. N0 7. 66

【解答】10*(1+1+1)*2+3*2=66 8. L->next=L 9. 44

【解答】1*9+2*7+3*(2+5)=44 10. (15,40,95,20,50,70) 三、 判断题 1. X 2. √ 3. X 4. √ 5. √ 6. √ 7. X 8. √ 9. X 10. X 四、 简答题 1. 这里给出简单的求解步骤: 从顶点0开始,那么分析可知,第一个结点应该选择1,那么0->1 的距离=1 第二个节点选择3,为0->3的距离=3

第三个节点选择2为0->3->2的距离为3+2=5

第四个结点选择6,为0->3->2->4的距离为3+2+1=6 2. 1)画出的完全二叉树如下所示: 2)大根堆序列为:75、65、40、50、10、7、5、43、27

3)第一趟排序之后的序列为: 3. 算法的功能为: 计算二叉树中节点值为0的节点的个数 4. 构造过程如下: 5. 1)画出二叉树得: 2) 先序遍历结果:ABDGCEHIF 中序遍历结果:DGBAHEICF 后序遍历结果:GDBHIEFCA

6.(1)散列的结果图如下: 2)25 18 53

3)平均查找长度为: (1*5+2*2+3*1+4*1)/9=16/9 五、 程序填空题 1. (1)p!=NULL

(2)p=p->next

(3)p->next=q->next (4)free(q)

2. (5)j(8)a[j]=temp (9)flag==0 六、 算法题 1. 直接是折半查找的算法实现: int bisearch(int r[ ], int n,int k){

int low=0,mid,high=n-1; while(low<=high){

mid=(low+high)/2; if(r[mid].key==k)

return(mid+1); else if(r[mid].key>k)

high=mid-1;

else

low=mid+1; }

return(0);

}

2. 代码如下: // 给出结构体 typedef struct arcnode{ int adjvex;

struct arcnode*next; }arcnode;

typedef struct { int vertex;

arcnode*firstarc; }vexnode;

vexnode adjlist[max]; // 整体的算法代码 void toposort(int n){ int queue[max]; int front=0,rear=0; int v,w,m; arcnode*p; m=0;

for(v=1;v<=n;v++) if(adjlist[v].vertex==0) { rear=(rear+1)%max; queue[rear]=v; } printf(\"the toposort:\\n\"); while(front!=rear){ front=(front+1)%max; v=queue[front]; printf(\"%d \ m++; p=adjlist[v].firstarc; while(p!=NULL) { w=p->adjvex; adjlist[w].vertex--; if(adjlist[w].vertex==0){ rear=(rear+1)%max; queue[rear]=w; } p=p->next; } } if(m

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务