数据结构超全习题2005到2015.doc

20 ~ 20学年第 学期 数据结构 课程试卷 标准答案及评分标准 A( )/B() 卷 专业 班级 注意:标题请用宋体4号,内容请用宋体5号。 选择题(1 * 25 = 25分) 1~5 BCABB 6~10 BBCCB 11~15 BBCAB 16~20 AABCD 21~25 ADBDC 填空题(2 * 10 = 20分) 3 1 2 3.3 4.’xyxyxywwy’ 5.232 6.69 7.HIDJKEBLFGCA 8.第k列非零元素个数 9.9 10.散列查找 简答题(7 + 8 + 1 + 10 = 35分) 4 4 4 1 0 2 2 2 1 0 3 3 2 2 -1 4 2 3 5 2. 树和二叉树的区别有三:一是二叉树的度至多为2,树无此限制;(2分)二是二叉树有左右子树之分,即使在只有一个分枝的情况下, 也必须指出是左子树还是右子树,树无此限制;(2分)三是二叉树允许为空,树一般不允许为空(个别书上允许为空)。(2分) 树和二叉树逻辑上都是树形结构,二叉树不是树的特例。(2分) 3. 设该图用邻接表存储结构存储,顶点的邻接点按顶点编号升序排列 (1)ABGFDEC (2)EACFBDG (3) 4. 顶点 α A B C D E F G H W Ve(i) 0 1 6 3 4 24 13 39 22 52 Vl(i) 0 29 24 3 7 31 13 39 22 52 (4分) 活动 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 e(i) 0 0 0 0 1 6 6 3 3 4 24 13 13 13 39 22 22 l(i) 28 18 0 3 29 24 31 34 3 7 31 20 36 13 39 22 40 (4分) 关键路径是: 活动与顶点的对照表:a1α,A a2α,B a3α,C a4α,D a5A,E a6B,E a7B,W a8C,G a9C,F a10D,F a11E,G a12F,E a13F,W a14F,H a15G,W a16H,G a17H,W(2分) 算法实现题(2 * 10 = 20分) // La 和Lb 均不空 GetElem(La, i, ai); GetElem(Lb, j, bj); if(ai = bj){ (2分) ListInsert(Lc, ++k, ai); ++i; (2分) }else{ ListInsert(Lc, ++k, bj); ++j; (2分) } // 当La不空时 GetElem(La, i++, ai); ListInsert(Lc, ++k, ai); (2分) // 当Lb不空时 GetElem(Lb, j++, bj); ListInsert(Lc, ++k, bj); (2分) 2. /*直接插入排序算法*/ void StrInsSort1(RecType R[],int n){ ∥本算法是利用监视哨对R[1..n]进行直接插入排序 for(i = 2; i = n; i++){ ∥假定第一个记录有序(2分) R[0] = R[i]; j = i - 1; ∥将待排序记录放进监视哨(2分) ∥从后向前查找插入位置,将大于待排序记录向后移动 while (R[0].key R[j].key){ (2分) R[j + 1] = R[j];(1分) j--; ∥记录后移(1分) }∥while R[j + 1] = R[0]; ∥将待排序记录放到合适位置(2分) }∥for } 单项选择题(1*30=30分) 1.数据结构在计算机内存中的表示是指( )。 A.数据的存储结构 B.数据结构C.数据的逻辑结构D.数据元素之间的关系

文档评论(0)

1亿VIP精品文档

相关文档