985院校数据结构试卷.docxVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、算法填空题(20 分) 大连理工大学 2002 年硕士入学试题 数据结构部分(共 50 分) 1.对以下函数填空,实现将头指针为 h 的单链表逆置,即原链表的第一个结点变成逆 置后新链表的最后一个结点,原链表的第二个结点变成新链表的倒数第二个结点,如此等等, 直到最后一个结点作为新链表的第一个结点,并返回指向该结点的指针。设单链表结点类型 的定义为 typedef struct node {int data; strcut node *next; }NODE; NODE *dlbnz(NODE*h) { NODE *p,*q; q=NULL; while(h) p=h; h=h-next; ; ; } return q; } 2.假设算术表达式由字符串 b 表示,其中可以包含三种括号:圆括号和方括号及花括 号,其嵌套的顺序随意,如{[]([])}。请对以下函数填空,实现判别给定表达式中所含括号是 否正确配对出现的算法。 #define M 10 int khjc(char *b) { char sM}; int i,j=0,f=1; j=0; for(i=0;fb[i]!=’\0’;i++) { switch(b[i]) { case ’(’: ;break; case ’[’: ;break; case ‘{’: ;break; case ’)’: case ’]’: case ’[’:if(j==0;||b[I]!= ) f=0; } } return f ; } 3.对以下函数填空,实现以带头结点的单链表 h 为存储结构的直接选择排序。设单链 表结点类型的定义为 typedef struct node { int key; struct node *next; }NODE; void pxx(NODE *h) { NODE *p,*q,*m; int z; p=h-next; while(p!=NULL) { q=p-next; m=p; while(q!=NULL) { if(m-keyq-key) ; ; } if(p!=m) { x=p-key; p-key=m-key; m-key=x; } ;} } 二、算法设计题(30 分) 请用类 C 或类 PASCAL 语言设计实现下列功能的算法。 1.设二叉排序树以二叉链表为存储结构,请编写一个非递归算法,从大到小输出二叉 排序树中所有其值不小于 X 的键值。(10 分) 2.设由 n 个整数组成一个大根堆(即第一个数是堆中的最大值),请编写一个时间复杂 度为 O(log2n)的算法,实现将整数 X 插入到堆中,并保证插入后仍是大根堆。(10 分) 3.请编写一个算法,判断含 n 个顶点和 e 条边的有向图中是否存在环。并分析算法的 时间复杂度。(10 分) 大连理工大学 2003 年硕士入学试题 数据结构部分(共 75 分) 一、回答下列问题(20 分) 1.循环队列用数组 A[0..m—1)存放其数据元素。设 tail 指向其实际的队尾,front 指 向其实际队首的前一个位置,则当前队列中的数据元素有多少个?如何进行队空和队满的判 断? 2.设散列表的地址空间为 0~10,散列函数为 H(key)=key%11(%为求余函数),采用线 性探查法解决冲突,并将键值序列{15,36,50,27,19,48}依次存储到散列表中,请画出 相应的散列表;当查找键值 48 时需要比较多少次? 3.什么是 m 阶 B-树?在什么情况下向一棵 m 阶 B-树中插入一个关键字会产生结点分裂? 在什么情况下从一棵 m 阶 B-树中删除一个关键字会产生结点合并? 4.什么是线索二叉树?一棵二叉树的中序遍历序列为由 djbaechif,前序遍历序列为 abdjcefhi,请画出该二叉树的后序线索二叉树。 二、请用类 C 或类 PASCAL 语言进行算法设计,并回答相应问题。(45 分) 1.设计一非递归算法采用深度优先搜索对无向图进行遍历,并对算法中的无向图的存 储结构予以简单说明。 2.用链式存储结构存放一元多项式 Pn(x)=P1xel+P2xe2+…+Pnxen,其中 Pi 是指数为 ei 的 项的非零系数,且满足 0≤e1≤e2…en=n。请设计算法将多项式 B=Pn2(x)加到多项式 A=Pn1(x),同时对算法及链表的结点结构给出简单注释。要求利用 Pnl(x)和 Pn2(x)的结点产生 最后求得的和多项式,不允许另建和多项式的结点空间。 3.(1){Rl,R2,…,Rn}为待排序的记录序列,请设计算法对{R1,R2,…,Rn}按关 键字的非递减次序进行快速排序。 (2)若待排序的记录的关键字集合是{30,4,48,

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档