东南大学数据结构试卷.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
东南大学数据结构试卷东南大学数据结构试卷

东 南 大 学 考 试 卷(A 卷) 课程名称 数据结构 考试学期 08-09-3 得分 适用专业 吴健雄学院电类 考试形式 半开卷 考试时间长度 120分钟 一、选择题(每题1分,共5分) 1.下面有关链栈的描述,对常规情况正确的是 ( ) A.在链头插入,链尾删除。 B.在链尾插入,链头删除。 C.在链尾插入,链尾删除。 D.在链头插入,链头删除。 2.对线性表进行对半搜索时,要求线性表必须( ) A.以数组方式存储 B.以数组方式存储并按关键码排序 C.以链表方式存储 D.以链表方式存储并按关键码排序 3.对包含n个元素的散列表进行搜索,平均搜索长度为( ) A.O(log2n) B.O(n) C.不直接依赖于n D.三者均不是 4.在同一个有向图中,所有结点的入度和与出度和之比为( ) A.1 B.2 C.1/2 D.都不对 5.在具有n个顶点的无向图中,要连通全部顶点至少需要( )条边。 A.n B.n+1 C.n-1 D.n/2 二、判断题(每题1分,共5分) 1.链式存储的线性表所有存储单元的地址可连续可不连续。 ( ) 2.存储有向图的邻接矩阵是对称的,所以可以仅存矩阵上三角部分。 ( ) 3.在采用闭散列法解决冲突时,不要立刻做物理删除,否则搜索时会出错。 ( ) 4.二叉树中序遍历结果序列的最后一个结点必是前序遍历的最后一个结点。 ( ) 5.堆排序的时间复杂度是O(n log2 n),但需要额外存储空间。 ( ) 三、填空题(每空1分,第1空、第2空为2分,共11分) 1.中缀表达式“(a+b)*d+e/(f+a*d)+c)”所对应的后缀表达式为 (1) 2.后缀表达式“abef!||”所对应的中缀表达式为(2) 3.高度为h的二叉树最多可以有多少结点(3) 4.若对一棵完全二叉树从0开始编号,并按此编号把它顺序存储到一维数组a中,则a[i]元素的左孩子结点为(4) ,右孩子结点为(5) ,双亲结点为(6) 。 5.对用邻接矩阵表示的图进行任何一种遍历时,其时间复杂度为(7) 。对用邻接表表示的图进行任何一种遍历时,其时间复杂度为(8) 。 6.折半插入排序的时间复杂度为(9) 。 四、简答简述题(每题8分,共24分) 1.设有一组关键码输入序列{55,31,12,37,46,73,63,02,07},从空树开始构造平衡二叉搜索树,画出每加入一个新结点时的二叉树形态,需标出平衡因子。包括发生不平衡时,旋转的各步的二叉树形态,并标注旋转类型。 2.已知一棵二叉树的前序遍历的结果为ABECDFGHIJ,中序遍历的结果是EBCDAFHIGJ,试画出这棵二叉树。请用图表示逐步形成二叉树的过程(也可以用文字)。 3.请用Kruskal算法,逐步画出下面有权无向图的最小生成树。必须每次添加一条边。 五、综合算法题(每空2.5分,共55分) 1.完善改进的归并排序算法。*this是一个待排序的表,而表L2是一个辅助的工作表,帮助完成排序的中间步骤,最终完成*this的排序。所谓改进指在把元素序列复制到辅助表中时,把第2个表的元素顺序逆转,这样两个待归并的表从两端开始处理,向中间归并。可以省去检查子表是否结束的判断。 template typename Tvoid OrderedlistT::MergeSort(int left, int right){ OrderedlistT L2; improvedMergeSort(L2, left, right); //对序列进行归并排序 } template typename T void OrderedlistT::improvedMergeSort(OrderedlistT L2, int left, int right){ int mid = (left + right)/2;

文档评论(0)

yyanrlund + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档