数据结构考研真题

2009数据结构真题

1,为解决计算机与打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是

A. 栈 B. 队列 C. 树 D. 图

解答: B 先入先出,满足队列特性

2. 设栈S 和队列Q 的初始状态均为空,元素abcdefg 依次进入栈S 。若每个元素出栈后立即进入队列Q ,且7个元素出队的顺序是bdcfeag ,则栈S 的容量至少是

A .1 B.2 C.3 D.4

解答: C 出队列的顺序即为出栈的顺序

3. 给定二叉树图所示。设N 代表二叉树的根,L 代表根结点的左子树,R 代表根结点的右子树。若遍历后的结点序列为3,1,7,5,6,2,4,则其遍历方式是

A .LRN B.NRL C.RLN D.RNL

解答: D 根据遍历后的结点序列,可知先右子树,后根结点,再左子树

4. 下列二叉排序树中,满足平衡二叉树定义的是

A .

B. C. D. 解答: B 见平衡二叉树的定义

5. 已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则完全二叉树的结点个数最多是

A .39 B.52 C.111 D.119

解答: C 最多的情况是:该完全二叉树共有7层,第6层上有8个叶子结点(即没有孩子结点). 因此,该7层的完全二叉树与7层的满二叉树相差8 * 2 = 16个结点。所以该7层完全二叉树结点个数为:27-1-16=111

6. 将森林转换为对应的二叉树,若在二叉树中,结点u 是结点v 的父结点的父结点,则在原来的森林中,u 和v 可能具有的关系是

I .父子关系

II. 兄弟关系

III. u的父结点与v 的父结点是兄弟关系

A. 只有II B.I 和II C.I 和III D.I 、II 和III

解答: B

7. 下列关于无向连通图特性的叙述中,正确的是

I .所有顶点的度之和为偶数

II. 边数大于顶点个数减1

III. 至少有一个顶点的度为1

A. 只有I B. 只有II C.I 和II D.I和III

解答: A II 和III 都可以用环型图来排除

8. 下列叙述中,不符合m 阶B 树定义要求的是

A .根节点最多有m 棵子树 B. 所有叶结点都在同一层上

C .各结点内关键字均升序或降序排列 D. 叶结点之间通过指针链接 解答: D 见B 树定义

9. 已知关键序列5,8,12,19,28,20,15,22是小根堆(最小堆),插入关键字3,调整后得到的小根堆是

A .3,5,12,8,28,20,15,22,19

B. 3,5,12,19,20,15,22,8,28

C .3,8,12,5,20,15,22,28,19

D. 3,12,5,8,28,20,15,22,19

解答: A 见小根堆插入算法

10. 若数据元素序列11,12,13,7,8,9,23,4,5是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是

A .起泡排序 B. 插入排序 C. 选择排序 D. 二路归并排序 解答: B

41. 带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。假定从初始顶点到目标顶点之间存在路径,现有一种解决该问题的方法:

①设最短路径初始时仅包含初始顶点,令当前顶点u 为初始顶点;

②选择离u 最近且尚未在最短路径中的一个顶点v ,加入到最短路径中,修改当前顶点u=v;

③重复步骤②,直到u 是目标顶点时为止。

请问上述方法能否求得最短路径?若该方法可行,请证明之;否则,请举例说明。

解析:该方法求得的路径不一定是最短路径。例如,对于下图所示的带权图,如果按照题中的原则,从A 到C 的最短路径为A →B →C ,事实上其最短路径为 A →D →C 。

42. (15分)已知一个带有表头结点的单链表,结点结构为

假设该链表只给出了头指针list 。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k 个位置上的结点(k 为正整数)。若查找成功,算法输出该结点的data 值,并返回1;否则,只返回0。要求:

(1) 描述算法的基本设计思想

(2) 描述算法的详细实现步骤

(3) 根据设计思想和实现步骤,采用程序设计语言描述算法(使用C 或

C++或JA V A 语言实现),关键之处请给出简要注释。

解析:1)由于只知道链表头指针,因此只能顺序遍历链表。但需要访问倒数第k个位置上结点,即“先入后出”,因此可采用栈作为辅助存储结构

2),实现步骤如下:

1,遍历链表,将结点指针进栈,并统计链表中结点总个数total

2,如果total

3,出栈k-1次,栈项位置结点即为所求,输出其data 域,并返回1

3)C++语言描述如下:

#include

#include

using namespace std;

int LocateElement(Linklist& list,int k)

{

stack S;

LNode* p, *q;

p = list->link;

int count = 0;

while (p != NULL) //进栈,并统计链表中元素个数 { count++; S.push(p); p = p->link; }

} if (count data

2009数据结构真题

1,为解决计算机与打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是

A. 栈 B. 队列 C. 树 D. 图

解答: B 先入先出,满足队列特性

2. 设栈S 和队列Q 的初始状态均为空,元素abcdefg 依次进入栈S 。若每个元素出栈后立即进入队列Q ,且7个元素出队的顺序是bdcfeag ,则栈S 的容量至少是

A .1 B.2 C.3 D.4

解答: C 出队列的顺序即为出栈的顺序

3. 给定二叉树图所示。设N 代表二叉树的根,L 代表根结点的左子树,R 代表根结点的右子树。若遍历后的结点序列为3,1,7,5,6,2,4,则其遍历方式是

A .LRN B.NRL C.RLN D.RNL

解答: D 根据遍历后的结点序列,可知先右子树,后根结点,再左子树

4. 下列二叉排序树中,满足平衡二叉树定义的是

A .

B. C. D. 解答: B 见平衡二叉树的定义

5. 已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则完全二叉树的结点个数最多是

A .39 B.52 C.111 D.119

解答: C 最多的情况是:该完全二叉树共有7层,第6层上有8个叶子结点(即没有孩子结点). 因此,该7层的完全二叉树与7层的满二叉树相差8 * 2 = 16个结点。所以该7层完全二叉树结点个数为:27-1-16=111

6. 将森林转换为对应的二叉树,若在二叉树中,结点u 是结点v 的父结点的父结点,则在原来的森林中,u 和v 可能具有的关系是

I .父子关系

II. 兄弟关系

III. u的父结点与v 的父结点是兄弟关系

A. 只有II B.I 和II C.I 和III D.I 、II 和III

解答: B

7. 下列关于无向连通图特性的叙述中,正确的是

I .所有顶点的度之和为偶数

II. 边数大于顶点个数减1

III. 至少有一个顶点的度为1

A. 只有I B. 只有II C.I 和II D.I和III

解答: A II 和III 都可以用环型图来排除

8. 下列叙述中,不符合m 阶B 树定义要求的是

A .根节点最多有m 棵子树 B. 所有叶结点都在同一层上

C .各结点内关键字均升序或降序排列 D. 叶结点之间通过指针链接 解答: D 见B 树定义

9. 已知关键序列5,8,12,19,28,20,15,22是小根堆(最小堆),插入关键字3,调整后得到的小根堆是

A .3,5,12,8,28,20,15,22,19

B. 3,5,12,19,20,15,22,8,28

C .3,8,12,5,20,15,22,28,19

D. 3,12,5,8,28,20,15,22,19

解答: A 见小根堆插入算法

10. 若数据元素序列11,12,13,7,8,9,23,4,5是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是

A .起泡排序 B. 插入排序 C. 选择排序 D. 二路归并排序 解答: B

41. 带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。假定从初始顶点到目标顶点之间存在路径,现有一种解决该问题的方法:

①设最短路径初始时仅包含初始顶点,令当前顶点u 为初始顶点;

②选择离u 最近且尚未在最短路径中的一个顶点v ,加入到最短路径中,修改当前顶点u=v;

③重复步骤②,直到u 是目标顶点时为止。

请问上述方法能否求得最短路径?若该方法可行,请证明之;否则,请举例说明。

解析:该方法求得的路径不一定是最短路径。例如,对于下图所示的带权图,如果按照题中的原则,从A 到C 的最短路径为A →B →C ,事实上其最短路径为 A →D →C 。

42. (15分)已知一个带有表头结点的单链表,结点结构为

假设该链表只给出了头指针list 。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k 个位置上的结点(k 为正整数)。若查找成功,算法输出该结点的data 值,并返回1;否则,只返回0。要求:

(1) 描述算法的基本设计思想

(2) 描述算法的详细实现步骤

(3) 根据设计思想和实现步骤,采用程序设计语言描述算法(使用C 或

C++或JA V A 语言实现),关键之处请给出简要注释。

解析:1)由于只知道链表头指针,因此只能顺序遍历链表。但需要访问倒数第k个位置上结点,即“先入后出”,因此可采用栈作为辅助存储结构

2),实现步骤如下:

1,遍历链表,将结点指针进栈,并统计链表中结点总个数total

2,如果total

3,出栈k-1次,栈项位置结点即为所求,输出其data 域,并返回1

3)C++语言描述如下:

#include

#include

using namespace std;

int LocateElement(Linklist& list,int k)

{

stack S;

LNode* p, *q;

p = list->link;

int count = 0;

while (p != NULL) //进栈,并统计链表中元素个数 { count++; S.push(p); p = p->link; }

} if (count data


相关内容

  • 大笨象博士2015年考研英语复习方法
  • 信受奉行 立竿见影 大笨象博士2015年考研英语复习方法 惊人的考研英语三大统计数据: 2014 年考研英语真题总词汇为4211 2014年考研英语真题与考研英语大纲词汇数据: 个,扣除重复词汇后为1417 个,归为字典词汇1135 个,其中超纲词汇109个(专有名词31个,实际超纲词汇为78个). ...

  • 考研英语怎么复习(英语23问23答)
  • 惊人的三大统计数据,我们必须坚决地把词汇书扔进垃圾桶,因为: 2014年考研英语真题与考研英语大纲词汇数据:2014 年考研英语真题总词汇为4211个,扣除重复词汇后为1417 个,归为字典词汇1135 个,其中超纲词汇109个(专有名词31个,实际超纲词汇为78个) .这也就是说即使我们把大纲词汇 ...

  • 2018考研英语买什么资料好,看这里!
  • 2018考研英语买什么资料好,看这里! 寒假刚结束,考研党们也要回校复习了.在这给大家推荐几本考研英语复习资料.不知道买什么参考书的小伙伴,看这里! 一.考研英语买什么资料好--单词篇 在考研英语的复习过程中,背单词是基本功,单词背不过,何谈做对题目呢?但是考研英语要求的词汇量多达5500个,要是没 ...

  • 考研英语经验谈:如何从零基础到88分
  • 考研英语经验谈:如何从零基础到88分 在研究生考试之前,我的英语水平曾和很多人一样,在大学里没有好好学习过英语,英语 基础比较薄弱.在研考成绩下来之后我的英语考出了88分的好成绩,这无疑证明一点Nothing is impossible!在此简单地写下我的高分经验,供大家参考: 早动手,重基础 无可 ...

  • 武汉理工软件工程考研核心资料
  • 武汉理工大学计算机科学与技术学院 软件工程2013年852<数据结构>考研资料 (最全经典资料 高分必备) 目录 武汉理工同起点考研在校研究生团队提供 (可关注我们的博客) 1,2013武汉理工大学硕士研究入学考试<数据结构>复习指南(3页) 2,武汉理工大学硕士研究入学考试 ...

  • 考研英语资料推荐
  • 考研英语资料推荐 一.词汇 1.[红宝书]考研英语词汇(必考词+基础词+超纲词)这本书是我觉得目前最好的考研英语词汇书,包括了5500余个大纲词汇,这本书严格按照考研英语最新大纲要求,运用英语测试学及统计学原理,在深入研究历年真题及考研英语命题规律的基础上,对考研英语大纲词汇进行了深入地分析和研究, ...

  • 清华考研第一名
  • 考生档案 姓 名:胡 杭 报考院校:清华大学土木水电学院水利系河川枢纽研究所 考研成绩:政治 76 英语 69 数学 140 专业课 146 总分 431 排 名:初试第一.复试第一 二.综述 在准备考研的时候,我咨询了很多学长,想从他们那里学习些经验教训,让自己少走弯路.几位学长下来,尽管我也听得 ...

  • 英语经验文档
  • 阅读占的分数非常多,也是最重要的部分啦.我的经验,要想把阅读搞好,前面一部的词汇是前提,只有对大部分的考研词汇都能够掌握中文意思,才能谈阅读速度和技巧.至于文章里小部分的超纲词汇,那没有必要去浪费太多时间. 阅读有几个问题我们觉得很痛苦:速度跟不上,长难从句搞不懂,选项辨析不清楚. 我的个人观点很简 ...

  • 考研英语到底怎么复习?
  • 知乎 注册 登录 打开 App 考研英语到底该怎么复习? 3 条评论 分享 21 个回答 海绵 雪国卡夫卡.北极熊有点紧张.恒源祥 等 273 人赞同 之前在douban发的经验文~ "11年英语72...你有什么想问的吗..." ·······我是重点提示的分割线······· ...

  • 已考上的学长教你怎么复习考研英语二翻译
  • 已考上的学长教你怎么复习考研英语二翻译? 考研英语二和英语一有所不同,英语一翻译部分是在一篇长文章中划出五个长难句,要求翻译成汉语,难度较高.而英语二翻译部分为一短文,句子多数较短,难度较低. 对于翻译部分,建议用真题来复习,因为翻译部分为英译汉模式,所以在做其他题型时,要注意积累词汇和语法,练习翻 ...