2015浙江省数据结构考试基础
2013浙江省数据结构基础考试题库
1、下面程序段的时间复杂度是( A )。
s =0;for( i =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j];sum = s ;A) O(n2) B) O(n)C) O(m*n) D)O(1)2、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一C)不含回路 D)有n条边3、数据结构中,在逻辑上可以把数据结构分成( B )。
A)动态结构和静态结构B)线性结构和非线性结构C)紧凑结构和非紧凑结构D)内部结构和外部结构4、数据结构中,在逻辑上可以把数据结构分成( B )。
A)动态结构和静态结构B)线性结构和非线性结构C)紧凑结构和非紧凑结构D)内部结构和外部结构5、向一个栈顶指针为hs的链栈中插入一个s结点时,应执行( D )。
A) hs->next=s; B) s->next=hs->next; hs->next=s;C) s->next=hs; hs=s; D) s->next=hs; hs=hs->next;6、n个顶点,e条边的有向图的邻接矩阵中非零元素有( C )个。
A)n B)2e C)e D) n+e7、如果结点A有3个兄弟,而且B为A的双亲,则B的度为( B )。
A)3 B)4 C)5 D)18、队列的操作的原则是( A )。
A)先进先出 B) 后进先出C) 只能进行插入 D) 只能进行删除9、链式存储的存储结构所占存储空间( A )。
A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针B)只有一部分,存放结点值C)只有一部分,存储表示结点间关系的指针D)分两部分,一部分存放结点值,另一部分存放结点所占单元数10、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。
A)4 B)5C)6 D)711、在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为( C )。
2015年1月全国自考数据结构导论模拟试卷(一)
2015年1月全国自考数据结构导论模拟试卷(一)一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
第1题.【正确答案】 B【你的答案】本题分数2分第2题算法的计算量的大小称为计算的【】A. 效率B. 复杂性C. 现实性D. 难度【正确答案】 B【你的答案】本题分数2分第3题 .【正确答案】 A【你的答案】本题分数2分第4题排序算法中,第一趟排序后,任一元素都不能确定其最终位置的算法是【】A. 选择排序B. 插入排序C. 冒泡排序D. 快速排序【正确答案】 B【你的答案】本题分数2分第5题排序趟数与序列的原始状态有关的排序方法是【】A. 插入排序法B. 选择排序法C. 二路归并排序法D. 快速排序法【正确答案】 D【你的答案】本题分数2分第6题已知某完全二叉树采用顺序存储结构,结点数据信息的存放顺序依次为A、B、C、D、E、F、G、H,该完全二叉树的后根遍历序列为【】A. HDBEFCGAB. HDEBFGCAC. DHEBFGCAD. DEHBFGCA【正确答案】 B【你的答案】本题分数2分第7题磁盘是一种广泛使用的外部存储设备,对磁盘中的数据的存取操作【】A. 只能用顺序方式B. 只能用随机方式C. 既能用顺序方式也能用随机方式D. 方式取决于具体的机器【正确答案】 C【你的答案】本题分数2分第8题若有三个字符的字符串序列依次执行入栈操作,则其所有可能的输出排列共有【】A. 3种B. 4种C. 5种D. 6种【正确答案】 C【你的答案】本题分数2分第9题若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则最节省运算时间的存储方式是【】A. 单链表B. 双链表C. 单循环链表D. 带头结点的双循环链表【正确答案】 D【你的答案】本题分数2分第10题当采用分块查找时,数据的组织方式为【】A. 数据分成若干块,每块内数据有序B. 数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D. 数据分成若干块,每块(除最后一块外)中数据个数需相同【正确答案】 B【你的答案】本题分数2分第11题若评价算法的时间复杂性,比较对数阶量级与线性阶量级,通常【】A. 对数阶量级复杂性大于线性阶量级B. 对数阶量级复杂性小于线性阶量级C. 对数阶量级复杂性等于线性阶量级D. 两者之间无法比较【正确答案】 B【你的答案】本题分数2分第12题数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为【】A. 存储结构B. 逻辑结构C. 链式存储结构D. 顺序存储结构【正确答案】 C【你的答案】本题分数2分第13题线性结构中的一个结点代表一个【】A. 数据元素B. 数据项C. 数据D. 数据结构【正确答案】 A【你的答案】本题分数2分第14题一组记录的键值为(46,74,18,53,14,20,40,38,86,65),利用堆排序的方法建立的初始堆为【】A. (14,18,38,46,65,40,20,53,86,74)B. (14,38,18,46,65,20,40,53,86,74)C. (14,18,20,38,40,46,53,65,74,86)D. (14,86,20,38,40,46,53,65,74,18)【正确答案】 B【你的答案】本题分数2分第15题.【正确答案】 D二、填空题(本大题共13小题,每小题2分,共26分)请在每小题的空格中填上正确答案。
2015年浙江省《数据结构》期末考试试题及答案知识大全
38、在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。
A.p->prior = s;s->next = p;p->prior->next = s;s->prior = p->prior
B.p->prior = s;p->prior->next = s;s->next = p;s->prior = p->prior
A.删除单链表中的第一个元素
B.删除单链表中的最后一个元素
C.在单链表第一个元素前插入一个新元素
D.在单链表最后一个元素后插入一个新元素
37、非空的循环单链表head的尾结点(由p所指向)满足 C 。
A.p->next == NULL B.p == NULL
C.p->next ==head D.p == head
A. HL=ps p一>next=HL
B. p一>next=HL;HL=p3
C. p一>next=Hl;p=HL;
D. p一>next=HL一>next;HL一>next=p
3、在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何 B.结点个数的多少
41、深度为k的完全二叉树所含叶结点的个数最多为( B)。
A)2k B) 2k-1 C)k D) 2k
42、一棵左子树为空的二叉树在前序线索化后,其空指针域个数为
33、在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何 B.结点个数的多少
C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
34、广义表A=(x,((y),((a)),A))的深度是
2015浙江省数据结构基础试题及答案
20、在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行( A ) 。
A)q->next=s; s->next=p; B)s->next=p->next; p->next=s;
C)p->next=s->next; s->next=p D)p->next=s; s->next=q;
29、二叉树第i(i≥1)层上至多有( C )结点。
A)2i B)2i C)2i-1 D)2i-1
30、n个顶点,e条边的有向图的邻接矩阵中非零元素有( C )个。
A)n B)2e C)e D) n+e
31、在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为( C )。
1、下面关于线性表的叙述中,错误的是哪一个?( D )
A)线性表采用顺序存储,必须占用一片连续的存储单元。
B)线性表采用链接存储,便于插入和删除操作。
C)线性表采用链接存储,不必占用一片连续的存储单元。
D)线性表采用顺序存储,便于进行插入和删除操作。
C) 只能进行插入 D) 只能进行删除
13、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是( B )。
A)9 B)11 C)15 D)不能确定
14、如果结点A有3个兄弟,而且B为A的双亲,则B的度为( B )。
16、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。这样的排序方法是( A பைடு நூலகம்。
2015-初试-数据结构-考试大纲
三、栈和队列
1.掌握栈和队列这两种抽象数据类型的特点,并能在相应的应用问题中正确选用它们。
2.熟练掌握栈类型的两种实现方法。
3.熟练掌握循环队列和链队列的基本操作实现算法。
4.理解递归算法执行过程中栈的状态变化过程。
四、串
6.学会编写实现树的各种操作的算法。
7.了解哈夫曼树的特性,掌握建立哈夫曼树和哈夫曼编码的方法。
七、图
1.领会图的类型定义。
2.熟悉图的各种存储结构及其构造算法,了解各种存储结构的特点及其选用原则。
3.熟练掌握图的两种遍历算法。
4.理解各种图的应用问题的算法及其应用场合。
八、查找
1.理解“查找表”的结构特点以及各种表示方法的适用性。
2015年考试内容范围说明
考试科目名称:数据结构
考试内容范围:
一、绪论
1.了解有关数据结构的各个名词和术语的含义,以及语句频度和时间复杂度、空间复杂度的估算。
二、线性表
1.了解线性表的逻辑结构特性是数据元素之间存在着线性关系,在计算机中表示这种关系的两类不同的存储结构是顺序存储结构和链式存储结构。
2.熟练掌握顺序存储结构和链式存储结构的描述方法以及线性表的基本操作在这两种存储结构上的实现。
九、内部排序
1.理解排序的定义和各种排序方法的特点,并能加以灵活应用。
2.掌握各种排序方法的时间复杂度和空间复杂度的分析方法。能从“关键字间的比较次数”分析排序算法的平均情况和最坏情况的时间性能。
3.理解排序方法“稳定”或“不稳定”的含义,弄清楚在什么情况下要求应用的排序方法必须是稳定的。
一十、文件
2.熟练掌握以顺序表或有序表表示静态查找表时的查找方法。
2015浙江省数据结构考试基础
1、(1)p->rchild (2)p->lchild (3)p->lchild (4)ADDQ(Q,p->lchild) (5)ADDQ(Q,p->rchild)25. (1)t->rchild!=null (2)t->rchild!=null (3)N0++ (4)count(t->lchild) (5)count(t->rchild)26. .(1)top++ (2) stack[top]=p->rchild (3)top++ (4)stack[top]=p->lchild27. (1)*ppos // 根结点(2)rpos=ipos (3)rpos–ipos (4)ipos (5)ppos+12、设有一个数组中存放了一个无序的关键序列K1、K2、…、Kn。
现要求将Kn放在将元素排序后的正确位置上,试编写实现该功能的算法,要求比较关键字的次数不超过n。
51. 借助于快速排序的算法思想,在一组无序的记录中查找给定关键字值等于key的记录。
设此组记录存放于数组r[l..h]中。
若查找成功,则输出该记录在r数组中的位置及其值,否则显示“not find”信息。
请编写出算法并简要说明算法思想。
3、请设计一个算法,要求该算法把二叉树的叶子结点按从左到右的顺序连成一个单链表,表头指针为head。
二叉树按二叉链表方式存储,链接时用叶子结点的右指针域来存放单链表指针。
分析你的算法的时、空复杂度。
4、设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左,右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。
N2、NL、NR、N0都是全局量,且在调用count(t)之前都置为0.typedef struct node{int data; struct node *lchild,*rchild;}node;int N2,NL,NR,N0;void count(node *t){if (t->lchild!=NULL) if (1)___ N2++; else NL++;else if (2)___ NR++; else (3)__ ;if(t->lchild!=NULL)(4)____; if (t->rchild!=NULL) (5)____;}26.树的先序非递归算法。
2015考研计算机数据结构试题及答案
2015年考研必备资料2015年考研计算机数据结构试题及答案目录2015年考研计算机数据结构试题及答案(1) (2)2015年考研计算机数据结构试题(1) (2)2015年考研计算机数据结构试题答案(1) (5)2015年考研计算机数据结构试题及答案(2) (6)2015年考研计算机数据结构试题(2) (6)2015年考研计算机数据结构试题答案(2) (9)2015年考研计算机数据结构试题及答案(3) (11)2015年考研计算机数据结构试题(3) (11)2015年考研计算机数据结构试题答案(3) (13)2015年考研计算机数据结构试题及答案(4) (15)2015年考研计算机数据结构试题(4) (15)2015年考研计算机数据结构试题答案(4) (17)2015年考研计算机数据结构试题及答案(5) (19)2015年考研计算机数据结构试题(5) (19)2015年考研计算机数据结构试题答案(5) (21)2015年考研计算机数据结构试题及答案(1)2015年考研计算机数据结构试题(1)一、选择题(24分)1.下列程序段的时间复杂度为( )。
i=0,s=0; while (s(A) O(n1/2) (B) O(n1/3) (C) O(n) (D) O(n2)2.设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列( )存储方式最节省运算时间。
(A) 单向链表 (B) 单向循环链表(C) 双向链表 (D) 双向循环链表3.设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为( )。
(A) s->next=p->next;p->next=-s; (B) q->next=s; s->next=p;(C) p->next=s->next;s->next=p; (D) p->next=s;s->next=q;4.设输入序列为1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为( )。
2015年数据结构期末考试题及答案,推荐文档(2021年整理)
2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改) 编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改))的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改)的全部内容。
2012年数据结构期末考试题及答案一、选择题1.在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构B.数据结构C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。
A.逻辑B.存储C.逻辑和存储D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C .A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何B.结点个数的多少C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便.6.以下说法正确的是 D 。
A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A .(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是O(n2) 。
2011-2012第1学期数据结构基础期末考卷 2
诚信应考 考出水平 考出风格浙江大学城市学院2011 — 2012 学年第 一 学期期末考试试卷《 数据结构基础 》开课单位: 计算分院 ;考试形式:闭卷;考试时间: 2012 年 1 月 3 日; 所需时间: 120 分钟一.选择题 (本大题共 15 题,每题 1 分,共 15 分)1.从逻辑上可以把数据结构分成 。
A. 动态结构和静态结构B. 顺序组织和链接组织C. 线性结构和非线性结构D. 基本类型和组合类型 2.执行下面程序段时,执行S 语句的频度为 。
for(int i=1;i<=n;i++) for(int j=1;j<=i;j++)S;A. n 2B. n 2/2C. n(n+1)D. n(n+1)/23.若某线性表最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用下列 存储方式最节省运算时间。
A. 单链表B. 仅有指向表头指针的单循环链表C. 双链表D. 仅有指向表尾指针的单循环链表 4.带头结点的单链表L 为空的判断条件是 。
A. L== NULLB. L->next==NULLC. L->next==LD. L!= NULL 5.允许对队列进行的操作有 。
A. 对队列中的元素排序B. 取出最近入队的元素C. 在队头元素之前插入元素D. 删除队头元素6.在计算递归函数时,如不用递归过程,应借助于 这种数据结构。
A. 线性表 B. 栈 C. 队列 D. 双向队列7.若用一个大小为6的一维数组来实现循环队列,且当前rear和front的值分别为0 和3。
当从队列中删除一个元素,再加入两个元素后,rear和front的值分别是( )。
A. 4 和2B. 2 和4C. 1 和5D. 5 和18.在有n个结点的二叉树的二叉链表表示中,空指针数。
A. 不定B. n+1C. nD. n-19.设x和y是二叉树中的任意两个结点,若在先序遍历中x在y之前,而在后序遍历中x在y 之后,则x和y的关系是。
2015数据结构A卷答案
三.简答题(第 1,2,3 题每题 5 分,第 4 题 10 分,共 25 分)
1. 在表达式计算中,用到两个栈,一个是操作符栈 OPTR,另一个是操作数栈 OPND,画出计算 2×
(6-2)步骤 2-11 的两个栈的变化过程。 订 [解答]
步骤
OPTR
OPND
1
#
2
#
23#×2来自4#×(2
5
#×(
26
}
i=0;
/*合并 n-1 次*/
while (i<n-1)
/* 合并 n-1 次 */
G 01
H 1101
{ x1=0; m1=32767; /* m1 是最小值单元,x1 为下标号 */ x2=0; m2=32767; /* m2 为次小值单元,x2 为下标号 */ for(j=1; j<=n+i; j++) { if ((h[j].data<m1)&&(h[j].tag==0)) { m2=m1; x2=x1; m1=r[j].data;x1=j; } else if ((h[j].data<m2)&&(h[j].tag==0)) { m2=h[j].data; x2=j; } }
//------1 分
int hufftree (huff h[20])
{ scanf(“\n n=%d”,&n); /* n 为叶子结点的个数 */
for(j=1;j<=n; j++)
{ scanf(“%d”,&r[j].data);
h[j].tag=0;h[j].lch=0; h[j].rch=0;
k=0;
数据结构期中考试试卷答案
2014-2015学年度第一学期《数据结构》期中考试试卷一、选择题(每题2分,共20分)1. 计算机内部数据处理的基本单位是( B )。
A.数据B.数据元素C.数据项D.数据库2. 设语句x++的时间是单位时间,则以下语句的时间复杂度为(B)。
for(i=1; i<=n; i++)for(j=i; j<=n; j++)x++;n) C.O(n) D.O(3n)A.O(1)B.O(23. 在一个长度为n的顺序表中删除第i个元素(0<=i<=n)时,需向前移动(A)个元素。
A.n-i B.n-i+l C.n-i-1 D.i4. 在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行(B)。
A.s->next=p->next; p->next=s B.q->next=s; s->next=pC.p->next=s->next; s->next=p D.p->next=s; s->next=q5. 在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为______。
CA.top不变B.top=0 C.top-- D.top++6. 在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为________。
DA.rear%n= = front B.(front+l)%n= = rearC.rear%n -1= = front D.(rear+l)%n= = front7. 两个字符串相等的条件是(D )。
A.两串的长度相等B.两串的长度相等,并且两串包含的字符相同C.两串包含的字符相同D.两串的长度相等,并且对应位置上的字符相同8. 数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[8][5]的起始地址为( C )。
2015年上半年浙江省重要数据基础
PreToPost(pre,post,l1+half+1,h1,l2+half,h2-1) //将右子树先序序列转为后序序列
} }//PreToPost
32. .叶子结点只有在遍历中才能知道,这里使用中序递归遍历。设置前驱结点指针pre,初始为空。第一个叶子结点由指针head指向,遍历到叶子结点时,就将它前驱的rchild指针指向它,最后叶子结点的rchild为空。
if (g[v][j]==1){if (!s[j]) {s[j]=jh; Q[++r]=j;} //邻接点入队列
else if (s[j]==s[v]) return(0);} //非二部图
}//if (!visited[v])
}//while
//保留当前最长路径到l栈,记住最高栈顶指针,退栈
}
else if(top>0) {tag[top]=1; p=s[top].Rc;} //沿右子分枝向下
}//while(p!=null||top>0)
}//结束LongestPath
9、请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用llink-rlink法存储。
while(f<r)
{v=Q[++f]; if (s[v]==1) jh=2; else jh=1;//准备v的邻接点的集合号
if (!visited[v])
{visited[v]=1; //确保对每一个顶点,都要检查与其邻接点不应在一个集合中
浙江省考研计算机科学与技术复习资料数据结构重点考点解析
浙江省考研计算机科学与技术复习资料数据结构重点考点解析在浙江省考研计算机科学与技术的复习过程中,数据结构是一个重要的考试内容。
本文将重点解析数据结构的相关考点,为考生提供复习资料和指导。
一、线性表1. 顺序表顺序表是数据结构中最基本的一种形式,其特点是元素在物理存储空间上是连续存储的。
在考试中,常涉及顺序表的插入、删除和查找等操作,考生需要熟悉这些操作的时间复杂度和实现原理。
2. 链表链表是另一种常见的线性表结构,其特点是元素在物理存储空间上是离散存储的。
在考试中,常涉及链表的插入、删除和反转等操作,考生需要理解链表的结构和指针的应用。
二、栈和队列1. 栈栈是一种特殊的线性表,具有先进后出(LIFO)的特点。
在考试中,常涉及栈的入栈、出栈和括号匹配等操作,考生需要理解栈的实现原理和应用场景。
2. 队列队列也是一种特殊的线性表,具有先进先出(FIFO)的特点。
在考试中,常涉及队列的入队、出队和优先级队列等操作,考生需要理解队列的实现原理和应用场景。
三、树和图1. 二叉树二叉树是一种常见的树形结构,每个节点最多有两个子节点。
在考试中,常涉及二叉树的遍历(前序、中序、后序)、节点插入和删除等操作,考生需要掌握这些操作的算法和实现方法。
2. 图图是一种更为复杂的非线性结构,由节点(顶点)和边组成。
在考试中,常涉及图的深度优先搜索(DFS)、广度优先搜索(BFS)和最短路径等算法,考生需要理解这些算法的原理和应用。
四、排序算法排序算法是数据结构中的重要内容,主要包括插入排序、冒泡排序、选择排序、快速排序、归并排序和堆排序等。
考生需要熟悉这些排序算法的特点、时间复杂度和实现原理,并能够根据具体情况选择合适的算法。
综上所述,数据结构是浙江省考研计算机科学与技术的重点内容。
考生需要牢记线性表、栈和队列、树和图以及排序算法等相关知识点,并理解它们的实现原理和应用场景。
只有在掌握了这些重点考点后,考生才能在考试中游刃有余地完成各种数据结构相关的问题。
考研_2015年浙江省中国计量大学数据结构与操作系统考研真题
2015年浙江省中国计量大学数据结构与操作系统考研真题一、单项选择题:1~40小题,每小题2分,共80分。
在每小题给出的四个选项中,请选出一项最符合题目要求的。
1.在下面的C语言程序段中,加法操作的时间复杂度为()。
Int i,j,k,sum=0;For (i=0;i<n;++i)For (j=0;j<i*i;++j)Sum ++;A.Ο(2n2)B.Ο(2n3)C.Ο(n3).Ο(n2)2.关于线性表的描述正确的是()。
A.访问顺序表中第k个元素的时间复杂度是Ο(N)B.访问单链表中第k个节点的时间复杂度是Ο(N)C.把新数据插入到顺序表中第k个位置的时间复杂度是Ο(1)D.把新数据插入到单链表中第k个位置的时间复杂度是Ο(1)3.关于队列描述正确的是()。
A.用链表表示队列时,也不可以插队(插队指在队列中间插入新数据)B.用环形数组表示队列时,可以循环使用数组,所以队列永远不会满C.用数组表示队列时,数据入队的时间复杂度是Ο(N)D.用数组表示队列时,数据出队的时间复杂度是Ο(N)4.关于栈描述正确的是()。
A.数据进出栈的原则是“先入先出”B.用数组表示栈时,栈的操作速度要比用链表表示的栈操作快C.用单链表表示栈时,出栈与入栈的时间复杂度是Ο(N)D.用数组表示栈时,出栈与入栈的时间复杂度是Ο(N)5.已知一颗完全二叉树的第6层有7个结点,则该完全二叉树总共有多少个结点?()。
A.40B.39C.38D.376.对下图从A出发进行广度优先遍历,正确的是()。
A.ABECFDGH B.ADGHFCBEC.ABCDEFGH D.ADCBGHFE7.对下面一个有向图进行拓扑排序,结果正确的是()。
A.ABDECB.ABCDEC.ABDCED.ACEBD8.采用平方探测方法解决冲突时,散列表的装载因子一般应低于()。
A.0.8B.0.7C.0.6D.0.59.一个有序数据序列中有31个数据,采用二分查找法在其中查找一个数据,最多要比较几次就能得到查找结果()。
2014-2015B学年二学期数据结构期末考试试卷(A卷)
3.试编写算法,将一个用循环链表表示的稀疏多项式分解成两个多项式,使这两个多项式中各自仅含奇次项或者偶次项,并要求利用原链表中的结点空间构成这两个链表。
4.试利用循环队列编写k阶斐波那契序列中前n+1项(f0,f1,…,fn)的算法,要求满足:
A、(n-1)/2 B、n C、n+1 D、n-1
E、n/2 F、(n+1)/2 G、(n-2)/2
2.下面的叙述不正确的是
A、线性表在链式存储时,查找第i个元素的时间同i的值成正比
B、线性表在链式存储时,查找第i个元素的时间同i的值无关
C、线性表在顺序存储时,查找第i个元素的时间同i的值成正比
D、线性表在顺序存储时,查找第i个元素的时间同i的值无关
1.线性表(a1,a2,…,an)用顺序映射表示时,ai和ai+1(1<=i<n〉的物理位置相邻吗?链接表示时呢?
2.如何通过改链的方法,把一个单向链表变成一个与原来链接方向相反的单向链表?
3.如果已知森林的前序序列和后序序列分别为ABCDEFIGJH和BDCAIFJGHE,请画出该森林
4.数据结构与数据类型有什么区别?
A、top==0 B、top==1 C、top==-1 D、top==m
10.串是一中特殊的线性表,其特殊性体现在。
A、可以顺序存储B、数据元素是一个字符
C、可以链接存储D、数据元素可以是多个字符
11.设树T的高度为4,其中度为l、2、3和4的结点个数分别为4、2、1、1,则T中的叶子数为
A、5 B、6 C、7 D、8
3.在作进栈运算时,应先判别栈是否(①),在作退栈运算时应先判别栈是否(②)。当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为(③)。
2015年浙江理工大学考研试题991数据结构
8. 一个有 n 个顶点的无向图最多有_________条边。 9. 在堆排序和快速排序中,若原始记录接近正序或反序,则选用_______比较好。
2. 某线性表最常用的操作是在最后一个结点之后插入一个结点或删除第一个结点,故采用 _______________存储方式最节省运算时间。 A. 单链表 C. 双链表 B. 仅有头结点的单循环链表 D. 仅有尾指针的单循环链表个结点时,用 X 保存被删结点的值,则执行 _______________________。 A.X = top; top = top->next; C. top = top->next; X = top->data; 4. 一维数组和线性表的区别是_____________。 A. 前者长度固定,后者长度可变 C. 两者长度均固定 B. 后者长度固定,前者长度可变 D. 两者长度均可变 B. X = top->data; D. X = top->data; top = top->next;
5. 稀疏矩阵一般的压缩存储方法有两种,即______________________。 A. 二维数组和三维数组 C. 三元组和十字链表 6. 不带头结点的单链表 simpleList 为空的判定条件是 A. simpleList == null C. simpleList->next = simpleList B. 三元组和散列 D. 散列和十字链表 。 B. simpleList->next == null D. simpleList! = null
9. 采用邻接表存储的图的深度优先遍历算法类似于二叉树的____________________。 A. 先序遍历 C. 后序遍历 B. 中序遍历 D. 按层遍历
数据结构与算法复习题含答案
数据结构与算法复习题含答案集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#《数据结构与算法》2015-2016学年第1学期考试复习题一、选择题(下面各小题有一个正确答案,请将正确答案的编号填写在各小题的括号内)。
1、在一棵具有5层的满二叉树中结点总数为( A )。
A) 31 B)32C)33 D)162、串的逻辑结构与( D )的逻辑结构不相同。
A)线性表 B)栈C)队列 D)集合3、下列序列中,执行第一趟快速排序后得到的序列是( A )。
A)[d,a,e,d,b]f[h,g] B) [c,e,a,d]f[h,g,b]C) [g,a,e,c,b]f[d,h] D) [a,b,c,d,]f[e,g,h]4、n个顶点的强连通图至少有( A )条边。
A)n B)n+1 C)n-1 D)n(n-1)5、数据结构中,在逻辑上可以把数据结构分成( B )。
A)动态结构和静态结构B)线性结构和非线性结构C)紧凑结构和非紧凑结构D)内部结构和外部结构6、链式存储的存储结构所占存储空间( A )。
A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针B)只有一部分,存放结点值C)只有一部分,存储表示结点间关系的指针D)分两部分,一部分存放结点值,另一部分存放结点所占单元数7、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。
当用二分查找法查找键值为84的结点时,经( B )比较后查找成功。
A) 4B)3C)2D)128、设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为( A )。
A)p->next=p->next->next; B) p=p->next;C)p=p->next->next; D) p->next=p;9、n个顶点,e条边的有向图的邻接矩阵中非零元素有( C )个。
浙江省计算机等级考试三级数据库技术试卷(真题一套)
浙江省计算机等级考试三级数据库技术试卷(真题一套)说明:(1)考生应将一至二题的答案涂写在答题卡上,将第三题答案写在答卷纸上,否则作无效处理;(2)所有题目均为必答题;(3)请将你的准考证号的后四位填写在答卷的右下角指定位置内;(4)考试时间为120分钟。
一、数据结构基础(30分)1、树的固有特性是()A、嵌套B、顺序C、递归D、选择2、在一个单链表中,已知q结点是p结点的前驱结点,删除p结点的语句()A p→next= p→next→next;B q→next= p→next;C q→next=nil;delete(p)D q = p→next;3、一个初始为空的栈,S是入栈,P是出栈,操作序列合法的是()A、PSSSPPB、SSPPPPC、SSPPSPD、PSPSPS4、循环队列用数组A[m]存放元素,头尾指针为front和rear,则当前队列中有的元素个数为()A.rear – front + 1 B.(rear – front + 1 + m ) mod mC.rear – front - 1 D.rear – front5、算法的查找效率一般是一平均查找代价来衡量的,比如线性查找是O(N),二分查找是O(logN),那么Hash查找的期望代价是() A O (㏒n) B O(n) C O (1) D (n㏒n)6、树型结构中父子之间的联系是() A 1:1 B 1:N C M:N D N:17、设a,b是一二叉树的两结点,在中序遍历时a在b前面的条件是()A a在b右边B a在b左边C a是b的祖先D a是b的子孙8、对线性表进行二分查找时,要求线性表必须是()A顺序存储B链式存储C 顺序存储且元素有序D 链式存储且元素有序9、下列数据哪一组符合最大值堆的定义()A、(42,40,45,55,80,85)B、(85,55,80,45,40,42)C、(85,45,80,55,40,42)D、(42,55,45,40,80,85)10、在内部排序中,排序时不稳定的是() A 插入排序 B 冒泡排序 C 快速排序 D 归并排序11、n个结点的树边数最多是()A.nB.n*(n-1)C.n-1D.n*(n-1)/212、对(541,132,984,,746,518,181,946,314,205,827)进行从大到小排序,用直接选择法,先选最大元素,第一趟的结果是()A (181,132,314,205,541,518,946,827,746,984)B (541,132,827,746,518,181, 946,314,205,984)C (205,132,314,181,518,746,946,984,541,827)D (541,132,984,746,827,181, 946,314,205,518)13、对(541,132,984,,746,518,181,946,314,205,827)进行从大到小排序,用快速排序法(以中间元素518为基准),第一趟的结果是()(选项同上题)14、哈夫曼树中,外部结点的个数比内部结点的个数()A.相等B.多1 C.少一D.无法确定15、在查找数中插入一个新结点,总是插入到()结点下面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、(1)p->rchild (2)p->lchild (3)p->lchild (4)ADDQ(Q,p->lchild) (5)ADDQ(Q,p->rchild)25. (1)t->rchild!=null (2)t->rchild!=null (3)N0++ (4)count(t->lchild) (5)count(t->rchild)26. .(1)top++ (2) stack[top]=p->rchild (3)top++ (4)stack[top]=p->lchild27. (1)*ppos // 根结点(2)rpos=ipos (3)rpos–ipos (4)ipos (5)ppos+12、设有一个数组中存放了一个无序的关键序列K1、K2、…、Kn。
现要求将Kn放在将元素排序后的正确位置上,试编写实现该功能的算法,要求比较关键字的次数不超过n。
51. 借助于快速排序的算法思想,在一组无序的记录中查找给定关键字值等于key的记录。
设此组记录存放于数组r[l..h]中。
若查找成功,则输出该记录在r数组中的位置及其值,否则显示“not find”信息。
请编写出算法并简要说明算法思想。
3、请设计一个算法,要求该算法把二叉树的叶子结点按从左到右的顺序连成一个单链表,表头指针为head。
二叉树按二叉链表方式存储,链接时用叶子结点的右指针域来存放单链表指针。
分析你的算法的时、空复杂度。
4、设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左,右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。
N2、NL、NR、N0都是全局量,且在调用count(t)之前都置为0.typedef struct node{int data; struct node *lchild,*rchild;}node;int N2,NL,NR,N0;void count(node *t){if (t->lchild!=NULL) if (1)___ N2++; else NL++;else if (2)___ NR++; else (3)__ ;if(t->lchild!=NULL)(4)____; if (t->rchild!=NULL) (5)____;}26.树的先序非递归算法。
void example(b)btree *b;{ btree *stack[20], *p;int top;if (b!=null){ top=1; stack[top]=b;while (top>0){ p=stack[top]; top--;printf(“%d”,p->data);if (p->rchild!=null){(1)___; (2)___;}if (p->lchild!=null)(3)___; (4)__;}}}}5、设从键盘输入一整数的序列:a1, a2, a3,…,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。
算法应对异常情况(入栈满等)给出相应的信息。
设有一个背包可以放入的物品重量为S,现有n件物品,重量分别为W1,W2,...,Wn。
问能否从这n件物品中选择若干件放入背包,使得放入的重量之和正好是S。
设布尔函数Knap(S,n)表示背包问题的解,Wi(i=1,2,...,n)均为正整数,并已顺序存储地在数组W中。
请在下列算法的下划线处填空,使其正确求解背包问题。
Knap(S,n)若S=0则Knap←true否则若(S<0)或(S>0且n<1)则Knap←false否则若Knap(1) , _=true则print(W[n]);Knap ←true否则 Knap←Knap(2) _ , _设有一个顺序栈S,元素s1, s2, s3, s4, s5, s6依次进栈,如果6个元素的出栈顺序为s2, s3, s4, s6, s5, s1,则顺序栈的容量至少应为多少?画出具体进栈、出栈过程。
假定采用带头结点的单链表保存单词,当两个单词有相同的后缀时,则可共享相同的后缀存储空间。
例如:设str1和str2是分别指向两个单词的头结点,请设计一个尽可能的高效算法,找出两个单词共同后缀的起始位置,分析算法时间复杂度。
将n(n>1)个整数存放到一维数组R中。
设计一个尽可能高效(时间、空间)的算法,将R中保存的序列循环左移p(0<p<n)个位置,即将R中的数据(x0, x1, x2,…, xn-1),变换为(xp, xp+1, … , xn-1 ,x0 , x1,…, xp-1)。
6、我们用l代表最长平台的长度,用k指示最长平台在数组b中的起始位置(下标)。
用j 记住局部平台的起始位置,用i指示扫描b数组的下标,i从0开始,依次和后续元素比较,若局部平台长度(i-j)大于l时,则修改最长平台的长度k(l=i-j)和其在b中的起始位置(k=j),直到b数组结束,l即为所求。
void Platform (int b[ ], int N)//求具有N个元素的整型数组b中最长平台的长度。
{l=1;k=0;j=0;i=0;while(i<n-1){while(i<n-1 && b[i]==b[i+1]) i++;if(i-j+1>l) {l=i-j+1;k=j;} //局部最长平台i++; j=i; } //新平台起点printf(“最长平台长度%d,在b数组中起始下标为%d”,l,k);}// Platform7、由二叉树的前序遍历和中序遍历序列能确定唯一的一棵二叉树,下面程序的作用是实现由已知某二叉树的前序遍历和中序遍历序列,生成一棵用二叉链表表示的二叉树并打印出后序遍历序列,请写出程序所缺的语句。
#define MAX 100typedef struct Node{char info; struct Node *llink, *rlink; }TNODE;char pred[MAX],inod[MAX];main(int argc,int **argv){ TNODE *root;if(argc<3) exit 0;strcpy(pred,argv[1]); strcpy(inod,argv[2]);root=restore(pred,inod,strlen(pred));postorder(root);}TNODE *restore(char *ppos,char *ipos,int n){ TNODE *ptr; char *rpos; int k;if(n<=0) return NULL;ptr->info=(1)_______;for((2)_______ ; rpos<ipos+n;rpos++) if(*rpos==*ppos) break;k=(3)_______;ptr->llink=restore(ppos+1, (4)_______,k );ptr->rlink=restore ((5)_______+k,rpos+1,n-1-k);return ptr;}postorder(TNODE*ptr){ if(ptr=NULL) return;postorder(ptr->llink); postorder(ptr->rlink); printf(“%c”,ptr->info); }8、假设K1,…,Kn是n个关键词,试解答:试用二叉查找树的插入算法建立一棵二叉查找树,即当关键词的插入次序为K1,K2,…,Kn 时,用算法建立一棵以LLINK / RLINK 链接表示的二叉查找树。
9、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。
现要求采用循环链表结构设计一个算法,模拟此过程。
10、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。
现要求采用循环链表结构设计一个算法,模拟此过程。
11、#define maxsize 栈空间容量void InOutS(int s[maxsize])//s是元素为整数的栈,本算法进行入栈和退栈操作。
{int top=0; //top为栈顶指针,定义top=0时为栈空。
for(i=1; i<=n; i++) //n个整数序列作处理。
{scanf(“%d”,&x); //从键盘读入整数序列。
if(x!=-1) // 读入的整数不等于-1时入栈。
if(top==maxsize-1){printf(“栈满\n”);exit(0);}else s[++top]=x; //x入栈。
else //读入的整数等于-1时退栈。
{if(top==0){printf(“栈空\n”);exit(0);}else printf(“出栈元素是%d\n”,s[top--]);}}}//算法结12、冒泡排序算法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)请给出上浮和下沉过程交替的冒泡排序算法。
48.有n个记录存储在带头结点的双向链表中,现用双向起泡排序法对其按上升序进行排序,请写出这种排序的算法。
(注:双向起泡排序即相邻两趟排序向相反方向起泡)13、#define maxsize 栈空间容量void InOutS(int s[maxsize])//s是元素为整数的栈,本算法进行入栈和退栈操作。
{int top=0; //top为栈顶指针,定义top=0时为栈空。
for(i=1; i<=n; i++) //n个整数序列作处理。
{scanf(“%d”,&x); //从键盘读入整数序列。
if(x!=-1) // 读入的整数不等于-1时入栈。
if(top==maxsize-1){printf(“栈满\n”);exit(0);}else s[++top]=x; //x入栈。
else //读入的整数等于-1时退栈。
{if(top==0){printf(“栈空\n”);exit(0);}else printf(“出栈元素是%d\n”,s[top--]);}}}//算法结14、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。