2012广东省JAVA版数据结构考资料

合集下载

2012年数据结构期末考试题及答案

2012年数据结构期末考试题及答案

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)。

s =0;for(I =0;i<n;i++)for(j=0;j<n;j++)s +=B[i][j];sum =s ;9.下面程序段的时间复杂度是O(n*m)。

for(i =0;i<n;i++)for(j=0;j<m;j++)A[i][j] =0;10.下面程序段的时间复杂度是O(log3n)。

i =0;while(i<=n)i =i * 3;11.在以下的叙述中,正确的是B。

A.线性表的顺序存储结构优于链表存储结构B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式是先进后出12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。

数据结构(JAVA)复习题及答案

数据结构(JAVA)复习题及答案

一、选择题1、数据结构在计算机内存中的表示是指____A__A.数据的存储结构 B.数据结构C.数据的逻辑结构D.数据元素之间的关系2、若一个算法的时间复杂度用T(n)表示,其中n的含义是(A)A.问题规模B.语句条数C.循环层数D.函数数量3、下列选项中与数据存储结构无关的术语是(D)A.顺序表B.链表C.链队列D.栈4、已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一个位置,则向队列中插入新元素时,修改指针的操作是(D)A.rear=(rear-1)%m;B.front=(front+1)%m;C.front=(front-1)%m;D.rear=(rear+1)%m;5、栈和队列的共同点是__C______A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点6、已知一堆栈的进栈序列为1234,则下列哪个序列为不可能的出栈序列______D__A.1234B.4321C.2143D.41237、具有线性结构的数据结构是(C)A.树B.图C.栈和队列D.广义表8、假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为(B)A.3B.37C.50D.979、若栈采用链式存储结构,则下列说法中正确的是(B)A.需要判断栈满且需要判断栈空B.不需要判断栈满但需要判断栈空C.需要判断栈满但不需要判断栈空D.不需要判断栈满也不需要判断栈空10、若一棵具有n(n>0)个结点的二叉树的先序序列与后序序列正好相反,则该二叉树一定是(C)A.结点均无左孩子的二叉树B.结点均无右孩子的二叉树C.高度为n的二叉树D.存在度为2的结点的二叉树11、若一棵二叉树中度为l的结点个数是3,度为2的结点个数是4,则该二叉树叶子结点的个数是(B)A.4B.5C.7D.812、在n个结点的线索二叉树中,线索的数目为_C_______A.n-1 B.nC.n+1D.2n13、一棵完全二叉树有1001个结点,其中有____B_____叶子结点A.500B.501C.503D.50515、一个有n个顶点的无向图最多有___C____条边。

2012广东省数据结构考试基础

2012广东省数据结构考试基础

1、编写一个过程,对一个n×n矩阵,通过行变换,使其每行元素的平均值按递增顺序排列。

2、连通图的生成树包括图中的全部n个顶点和足以使图连通的n-1条边,最小生成树是边上权值之和最小的生成树。

故可按权值从大到小对边进行排序,然后从大到小将边删除。

每删除一条当前权值最大的边后,就去测试图是否仍连通,若不再连通,则将该边恢复。

若仍连通,继续向下删;直到剩n-1条边为止。

void SpnTree (AdjList g)//用“破圈法”求解带权连通无向图的一棵最小代价生成树。

{typedef struct {int i,j,w}node; //设顶点信息就是顶点编号,权是整型数node edge[];scanf( "%d%d",&e,&n) ; //输入边数和顶点数。

for (i=1;i<=e;i++) //输入e条边:顶点,权值。

scanf("%d%d%d" ,&edge[i].i ,&edge[i].j ,&edge[i].w);for (i=2;i<=e;i++) //按边上的权值大小,对边进行逆序排序。

{edge[0]=edge[i]; j=i-1;while (edge[j].w<edge[0].w) edge[j+1]=edge[j--];edge[j+1]=edge[0]; }//fork=1; eg=e;while (eg>=n) //破圈,直到边数e=n-1.{if (connect(k)) //删除第k条边若仍连通。

{edge[k].w=0; eg--; }//测试下一条边edge[k],权值置0表示该边被删除k++; //下条边}//while}//算法结束。

connect()是测试图是否连通的函数,可用图的遍历实现,3、我们可用“破圈法”求解带权连通无向图的一棵最小代价生成树。

数据结构复习资料,java数据结构期末考试

数据结构复习资料,java数据结构期末考试

第二章算法分析1.算法分析是计算机科学的基础2.增长函数表示问题(n)大小与我们希望最优化的值之间的关系。

该函数表示了该算法的时间复杂度或空间复杂度。

增长函数表示与该问题大小相对应的时间或空间的使用3.渐进复杂度:随着n的增加时增长函数的一般性质,这一特性基于该表达式的主项,即n 增加时表达式中增长最快的那一项。

4.渐进复杂度称为算法的阶次,算法的阶次是忽略该算法的增长函数中的常量和其他次要项,只保留主项而得出来的。

算法的阶次为增长函数提供了一个上界。

5.渐进复杂度:增长函数的界限,由增长函数的主项确定的。

渐进复杂度类似的函数,归为相同类型的函数。

6.只有可运行的语句才会增加时间复杂度。

7. O() 或者大O记法:与问题大小无关、执行时间恒定的增长函数称为具有O(1)的复杂8.所有具有相同阶次的算法,从运行效率的角度来说都是等价的。

9.如果算法的运行效率低,从长远来说,使用更快的处理器也无济于事。

10.要分析循环运行,首先要确定该循环体的阶次n,然后用该循环要运行的次数乘以它。

(n表示的是问题的大小)11.分析嵌套循环的复杂度时,必须将内层和外层循环都考虑进来。

12.方法调用的复杂度分析:如:public void printsum(int count){int sum = 0 ;for (int I = 1 ; I < count ; I++)sum += I ;System.out.println(sun);}printsum方法的复杂度为O(n),计算调用该方法的初始循环的时间复杂度,只需把printsum方法的复杂度乘以该循环运行的次数即可。

所以调用上面实现的printsum方法的复杂度为O(n2)。

13指数函数增长 > 幂函数增长 > 对数函数增长第三章集合概述——栈1.集合是一种聚集、组织了其他对象的对象。

它定义了一种特定的方式,可以访问、管理所包含的对象(称为该集合的元素)。

2012数据结构_习题及程序设计整理

2012数据结构_习题及程序设计整理

2012数据结构_习题及程序设计整理疯狂记忆力数据结构是计算机科学中非常重要的一个领域,它主要研究数据的组织、存储和管理方式。

在学习数据结构的过程中,习题和程序设计是提高理解和应用的重要手段。

下面将整理一些2012年的数据结构习题及程序设计内容,帮助读者巩固和深入理解这一领域的知识。

一、线性结构1. 线性表是数据结构中最基本的一种结构,它的特点是元素之间存在一对一的关系,先后次序唯一确定。

请写一个C语言程序,实现线性表的基本操作,包括插入、删除、查找等。

2. 栈是一种特殊的线性表,具有“先进后出”的特点。

设计一个栈,支持判断栈是否为空、入栈和出栈操作,并实现一个简单应用情境,例如操作系统任务的进出栈操作。

3. 队列也是一种特殊的线性表,具有“先进先出”的特点。

设计一个队列,支持判断队列是否为空、入队和出队操作,并实现一个简单应用情境,例如模拟排队等待的场景。

二、非线性结构1. 树是一种重要的非线性结构,它以分层的方式存储数据。

定义一个树的基本数据结构,包括节点的定义、插入节点、删除节点等操作。

2. 图是由节点和边组成的数据结构,用于表示多对多的关系。

请设计一个简单的图结构,实现图的初始化、添加节点、添加边以及遍历等基本操作。

三、查找与排序1. 二分查找是一种常见的查找算法,适用于有序数组。

请编写一个二分查找算法的Java程序,并验证其正确性。

2. 快速排序是一种常见的排序算法,通过分治法实现。

请实现一个快速排序算法的Python程序,并对随机生成的一组数据进行排序。

四、高级数据结构1. 堆是一种完全二叉树,主要用于实现高效的优先队列。

设计一个堆的数据结构,并实现堆排序算法。

2. 哈希表是一种以键值对存储数据的数据结构,通过哈希函数实现高效的数据查找。

请实现一个简单的哈希表,包括哈希函数的设计、数据的插入和查找等操作。

以上是一些2012年的数据结构习题及程序设计内容,涵盖线性结构、非线性结构、查找与排序以及高级数据结构等方面的内容。

2012数据结构复习

2012数据结构复习

2012上《数据结构》复习提纲第1章绪论数据结构的研究目的和研究内容;有关术语;算法、算法复杂度的分析和计算方法例题:1.下面算法的时间复杂度为O( n )。

int f( unsigned int n ){if ( n = = 0 || n = = 1 ) return 1;else returen n *f ( n – 1 ); }2.一个算法应具备的5个特性为有穷性、确定性、可行性、输入、输出3.同类问题见第一次作业第2-3章线性表,栈和队列线性表的概念、存储结构、插入与删除操作;栈和队列的概念,理解栈顶指针、队首、队尾指针的意义和作用,特别是循环队列的头、尾指针的设置。

为什么要这样设置。

它们基本操作的实现。

判空和判满?了解有关应用。

例题:1.已知指针p所指结点不是尾结点,若在*p之后插入结点*S,则应执行和操作是s- >link =p->link; p->link =s;2.同类问题:在一个单链表中,若q所指结点是p所指结点的前驱结点,若在q与p之间插入一个s所指的结点,则执行的语句?(答:q->next=s; s->next=p);注意在某个已知结点前插需要执行的语句?3.注意循环(链)队列的判空和判满的条件?(看书理解!)4.在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是s->prior=p; s->next=p->next;p->next->prior=s; p->next=s;5.设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为p->next=p->next->next。

6.在一个具有n个结点的有序单链表中插入一个新结点并保持该表有序的时间复杂度是O(n)。

7.向一个栈顶指针为hs的链栈中插入一个s结点时,应执行s->next=hs; hs=s;。

Java基础面试题(2012完整版)

Java基础面试题(2012完整版)

第一部分 Java的类1.请解释Java语言的跨平台特性。

解析:虽然不知道什么是跨平台也可以使用Java语言进行编程,但是对于一个Java编程员来说,理解跨平台特性能够更深入掌握Java语言,所以企业中往往要求应聘者至少理解这个特性。

参考答案:Java的跨平台特性也被称为可移植性、平台无关性,或者一次编写处处运行。

他的意思就是如果用Java语言编写一个应用,那么就可以在不同平台上运行,而不需要为不同平台单独运行开发。

之所以能实现跨平台的特性。

主要得益于Java虚拟机(JVM),JVM 解释器在运行Java应用时根据当前平台进行解释,解释成符合当前平台规范的机器码,所以可以实现同样的应用在不同平台上都能运行。

2.请列举JAVA语言的主要特点解析:了解一门语言,往往从熟悉该语言的主要特点开始入手,所以企业也常常通过应聘者对JAVA语言特点的掌握程度而判断其语言基础是否扎实。

参考答案:JAVA语言有很多特点,主要包括①跨平台性:一个应用可以不经过修改直接运行到不同的平台上。

②面向对象:JAVA语言是一门面向对面的语言,可以使用对象的属性和行为,可以使用面向对象的思想进行分析设计,并实现整个应用。

③解释执行JAVA应用时,JVM中的解释器将解释类文件,生成符合当前平台的字节码。

④自动回收:JAVA应用中的垃圾回收是自动进行的,JVM中的后台线程将监视内存中数据的使用,当内存中的数据不再被引用时,将被作为垃圾回收,而不需要程序员动手回收。

3.请说明一个JAVA类中主要包含哪几个元素?并说明每种元素的作用。

解析:无论简单还是复杂的JAVA应用,都是由若干个类组成,所以类是JAVA应用的组成单位。

了解一个类中包含的主要元素能够对类有一个清晰的认识。

一个类中往往会有五种元素,即属性、方法、构造方法、块以及内部类、其实块和内部类比较少见。

参考答案:JAVA类中主要包含属性、方法、构造方法、块以及内部类。

属性用来定义对象的数据;方法用来定义对象的行为;构造方法可以用来创建对象;块能够用来在类加载时执行操作或者在每次实例化前执行通用操作;内部类作为类的一个成员存在,能够访问外部类的属性和方法。

2012数据结构_习题及程序设计整理

2012数据结构_习题及程序设计整理

第二章1、首尾顺序逆置2、找出顺序表中最大值和最小值及位置3、头插法算法4、尾插法:5、带头结点的单链表,向表头插入一个结点:6、单链表中查找第i个结点:8、单链表删除操作:9、重要习题,头结点与尾结点互换:10、重要习题,一个单链表拆为两个奇偶单链表:试写一个算法,将一个头结点为a的带头结点的单链表A分解成两个单链表A和B,其中头结点指针分别为a和b,使得A链表中含有原链表A中序号为奇数的元素,而B链表中含有原链表中序号为偶数的元素,并保持原来的相对顺序。

11、循环链表插入结点后仍然保持有序:12、重要习题(删除表中所有数值相同的多余元素):13、双向链表的删除操作:14、双向链表的插入操作:在带头结点的双向循环链表中插入一个新结点,需要修改的指针数量是4个。

包括新插入的新结点的指针,还有插入结点的前面结点的next域,和后面结点的prior域。

第二章课后习题14、设计两个顺序表A和B,且都递增有序,试写一算法,从A中删除与B中相同的元素(也就是计算A-B)。

15、已知head P指向结点与其后继结点位置交换。

(q为p的后继结点,s r16、已知两个单链表A和B分别表示两个集合,其元素值递增有序,试写一算法,求A和B的交集C,要求C同样以元素递增的单链表形式存储。

r=head; 查找p的前趋结点y的结点。

第三章一、队列算法f31的功能是清空带头结点的链队列Q,请填空。

Type struct node{ DataType data;Struct node *next;}QueueNode;{QueueNode *front; //队头指针二、填空题15、如果编号为1,2,3的3辆列车进入一个栈式结构的站台,那么可能得到的3辆车出站序列有哪些?不可能出现的序列是什么?16、简述下列程序算法的功能(假设元素为整数类型)(1) void ex31(SeqStack *S){int A[80],i,n;n=0;while(!empty(S)){ A[n]=pop[S];n++;}for(i=0;i<n;i++)push(S,A[i]);}答案:此算法功能是通过一个数组将一个栈中的所有元素逆置存放。

2012年计算机统考数据结构真题

2012年计算机统考数据结构真题
表 1
当前字符 a + b a * ( ( c + d ) / e f
栈内容 +
Байду номын сангаас
后缀表达式 a ab
说明
-* -*( -*(( -*(( -*((+ -*((+ -*( -*(/ -*(/ -*(-*(-
ab+ ab+a ab+a ab+a ab+a ab+ac ab+ac ab+acd ab+acd+ ab+acd+ ab+acd+e ab+acd+e/ ab+acd+e/f
D.O(n2)
B。本算法是一个递归,设执行时间为 T(n),则有: T(n)=1 当 n=1 时 T(n)=T(n-1)+1 当 n>1 时 所以 T(n)=T(n-1)+1=T(n-2)+2=T(n-3)+3=„=T(1)+n-1=n=O(n)。 2. 已知操作符包括 “+” , “-” , “*” , “/” 和 “(” 、 “)” 。 将中缀表达式 a+b-a*((c+d)/e-f)+g 转换为等价的后缀表达式 ab+acd+e/f-*-g+时, 用栈来存放暂时还不能确定运算次序的操 作符, 若栈初始时为空, 则转换过程中同时保存在栈中的操作符的最大个数是 ( ) 。 A.5 B.7 C.8 D.11 A。产生后缀表达式的过程如表 1 所示,从中看到栈中最多有 5 个运算符。
图 2
⌉ D。3 阶 B-树中每个非叶子节点至少包含⌈ 个关键字。该 3 阶 B-树删除关键 字 78(如图 3 所示),得到一棵新 B-树(如图 4 所示)。

2012广东省JAVA版数据结构最新考试试题库

2012广东省JAVA版数据结构最新考试试题库

1、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。

这样的排序方法是( A )。

A)直接选择排序 B)直接插入排序C)快速排序 D)起泡排序2、设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为( A )。

A)p->next=p->next->next B)p=p->nextC)p=p->nexe->next D)p->next=p3、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。

A) 单链表 B) 仅有头指针的单循环链表C) 双链表 D) 仅有尾指针的单循环链表4、设给定问题的规模为变量n,解决该问题的算法所需时间为Tn=O(f(n)),Tn表示式中记号O表示( A )。

A)一个数量级别 B)一个平均值C)一个最大值 D)一个均方值5、倘若在对串的插入、删除运算中,期望运算速度最快,则应采用( C )。

A)顺序表示法 B)单字符为结点的单链表表示法C)等量分块表示法 D)不等量分块表示法6、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。

A)4 B)5C)6 D)77、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。

A) Head(Head(Tail(Tail(L))))B) Tail(Head(Head(Tail(L))))C) Head(Tail(Head(Tail(L))))D)Head(Tail(Head(Tail(Tail(L)))))8、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。

这样的排序方法是( A )。

2012年广东省数据结构试题集(10套题并附带答案)考资料

2012年广东省数据结构试题集(10套题并附带答案)考资料

40、如果最常用的操作是取第i个结点及其前驱,则采用 D 存储方式最节省时间。
A.单链表 B.双链表 C.单循环链表 D. 顺序表
41、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。
A.单链表 B.静态链表 C.线性链表 D.顺序存储结构
A.SA+141 B.SA+144 C.SA+222 D.SA+255
39、在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。
A.p->prior = s;s->next = p;p->prior->next = s;s->prior = p->prior
3、在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构
C.线性结构和非线性结构 D.内部结构和外部结构
4、已知关键字序列为{66,82,25,51,98,108},利用快速排序方法,以第一个元素为基准得到的一趟排序结果为
28、衡量查找算法效率的主要标准是( C )。
A)元素个数 B)所需的存储量
C)平均查找长度 D)算法难易程度
29、在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构
C.线性结构和非线性结构 D.内部结构和外部结构
34、在循环双链表的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

2012秋季Java程序设计期末考试试卷(A卷)

2012秋季Java程序设计期末考试试卷(A卷)

华南农业大学期末考试试卷(A 卷)2012-2013学年第 1 学期 考试科目: Java 程序设计 考试类型:(闭卷)考试 考试时间: 120 分钟 学号 姓名 年级专业一、单项选择题(本大题共 25 小题,每小题 2 分,共 50 分)1. 下列关于Java 和C 程序的说法中正确的是________:A. 两者都是面向对象的高级语言B. 一个.java 源程序编译后将产生一个.class 的字节码文件C. C 是从Java 演变而来的D. Java 是解释型语言,所以执行速度比C 慢 2. 下列符合Java 程序元素命名习惯的是________。

A. double RadiusB. int lengthofarrayC. class shapeD. final double PI3. 对于构造方法,下列叙述不正确的是________。

A. 构造方法是类的一种特殊方法,它的方法名必须与类名相同B. 构造方法没有返回值类型C. 子类不但可以继承父类的无参构造方法,也可以继承父类的有参构造方法。

D. 子类在创建构造方法是必须把调用父类构造方法放在第一条语句4. 下列关于接口的说明正确的是________。

A. 接口和抽象类是同一回事B. 一个类不可以实现多个接口C. 接口间不能有继承关系D. 实现一个接口必须实现接口的所有方法5. Java 为移动设备提供的平台是________。

A .J2MEB .J2SEC .J2EED .JDK5.0 6. 下列语句中,属于多分支语句的是________。

A .switch 是分支语句B .不带标号的continue 可实现跳出所在的那层循环C.while语句适合于有固定循环次数的场合D.do while和while没有区别7.在Java中,存放字符串常量的对象属于________类对象。

A. CharacterB. StringC. StringBufferD. Char8.下列关于继承的哪项叙述是正确________。

2012年数据结构本科试题及答案

2012年数据结构本科试题及答案

武汉大学计算机学院2012年-2013学年第一学期“数据结构”考试试题(A )姓名学号(序号)_ 班号要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。

每张答题纸都要写上姓名和序号。

一、单项选择题(每小题2分,共30分)1. 数据结构在计算机内存中的表示是指 。

A. 数据的存储结构 B. 数据结构 C. 数据的逻辑结构 D. 数据元素之间的关系2. 若线性表最常用的运算是存取第i 个元素及其前趋元素的值,则采用 存储方式节省时间。

A.单链表B.双链表C.单循环链表D.顺序表3. 在一个具有n 个结点的有序单链表中插入一个新结点使得仍然有序,其算法的时间复杂度为 。

A.O(log 2n)B.O(1)C.O(n 2)D.O(n) 4. 栈和队列的共同点是 。

A.都是先进后出 B.都是先进先出 C.只允许在端点处插入和删除元素 D.没有其同点5. 判定一个循环队列Q (存放元素位置为0~QueueSize-1,front 指向队中队首元素的前一个位置,rear 指向队中队尾元素的位置)队空的条件是 。

A.Q.front==Q.rearB.Q.front+1==Q.rearC.Q.front==(Q.rear+1)%QueueSizeD.Q.rear==(Q.front+1)%QueueSize 6. 串是 。

A.不少于一个字母的序列B.任意个字母的序列C.不少于一个字符的序列D.有限个字符的序列 7. 一个n×n 的对称矩阵A ,如果采用以列优先(即以列序为主序)的压缩方式存放到一个一维数组B 中,则B 的容量为 。

A. n 2B.22nC. 2)1(+n nD.2)1(2+n8. 若一棵3次树中有a 个度为1的节点,b 个度为2的节点,c 个度为3的节点,则该树中有 个叶子节点。

A.1+2b +3cB.a +2b +3cC.2b +3cD.1+b +2c 9. 一棵完全二叉树中有501个叶子节点,则至少有 个节点。

java数据结构期末考试题及答案

java数据结构期末考试题及答案

java数据结构期末考试题及答案一、选择题(每题2分,共20分)1. 在Java中,以下哪个类是`java.util`包的一部分?A. ArrayListB. HashMapC. LinkedListD. All of the above答案:D2. 下列哪个方法用于将元素添加到ArrayList的末尾?A. add()B. append()C. push()D. insert()答案:A3. 在Java中,HashMap的键值对映射关系是什么?A. 一对一B. 一对多C. 多对一D. 多对多答案:A4. 下列哪个类是Java集合框架中的接口?A. LinkedListB. HashSetC. ArrayListD. Collection答案:D5. Java中,哪个方法用于删除ArrayList中的指定元素?A. remove()B. delete()C. erase()D. clear()答案:A6. 下列哪个类实现了Queue接口?A. PriorityQueueB. LinkedListC. HashSetD. TreeSet答案:B7. Java中,哪个方法用于判断HashMap是否包含指定的键?A. containsKey()B. containsValue()C. contains()D. hasKey()答案:A8. 下列哪个方法用于获取ArrayList的当前大小?A. size()B. length()C. count()D. lengthOf()答案:A9. 在Java中,哪个类实现了Set接口?A. ArrayListB. LinkedListC. HashSetD. HashMap答案:C10. 下列哪个方法用于将元素插入到ArrayList的指定位置?A. add()B. insert()C. put()D. set()答案:A二、填空题(每题2分,共20分)1. 在Java中,使用________方法可以创建一个ArrayList实例。

数据结构(Java)复习题及答案 1绪论

数据结构(Java)复习题及答案 1绪论

一、单项选择题( B )1. 计算机算法必须具备输入、输出和 等5个特性。

A) 可行性、可移植性和可扩充性 B) 可行性、确定性和有穷性C) 确定性、有穷性和稳定性 D) 易读性、稳定性和安全性( C )2. 数据结构中,与所使用的计算机无关的是数据的 结构;A) 存储 B) 物理 C) 逻辑 D) 物理和存储( C )3. 算法分析的目的是:A) 找出数据结构的合理性 B) 研究算法中的输入和输出的关系C) 分析算法的效率以求改进 D) 分析算法的易懂性和文档性( A )4. 算法分析的两个主要方面是:A) 空间复杂性和时间复杂性 B) 正确性和简明性C) 可读性和文档性 D) 数据复杂性和程序复杂性( C )5. 计算机算法指的是:A) 计算方法 B) 排序方法 C) 解决问题的有限运算序列 D) 调度方法6.数据结构是研究数据的(A)和(B)以及它们之间的相互关系,并对这种结构定义相应的 (C),设计出相应的(D),从而确保经过这些运算后所得到的新结构是(E)结构类型。

供选择的答案A.B: 1.理想结构 2.抽象结构 3.物理结构 4逻辑结构C.D.E: 1.运算 2.算法 3.结构 4.规则 5.现在的 6.原来的解答:341267.(A)是描述客观事物的数、字符以及所有能输入到计算机中被计算机程序加工处理的符号的结合。

(B)是数据的基本单位,即数据结合中的个体。

有时一个(B)由若干个 (C)组成,在这种情况下,称(B)为记录。

(C)是数据的最小单位。

(D)是具有相同特性的数据元素的集合。

(E)是带有结构特性的数据元素的结合。

被计算机加工的数据元素不是孤立无关的,它们彼此之间一般存在着某种联系,通常将数据元素的这种联系关系称为 (G)。

算法的计算量和问题规模的联系用(H)表示。

供选择的答案:A-F: 1.数据元素 2.符号 3.记录 4.文件 5.数据 6.数据项 7.数据对象 8.关键字 9.数据结构G: 1.规则 2.集合 3.结构 4.运算H: 1.现实性 2.难度 3.复杂性 4.效率解答:5167933二、判断题1, 数据元素是数据的最小单位。

java数据结构测试题及答案解析

java数据结构测试题及答案解析

1 下列数据结构中,能用二分法进行查找的是__A____。

A、顺序存储的有序线性表B、线性链表C、二叉链表D、有序线性链表解析:二分法查找只合用于顺序存储的有序表。

在此所说的有序表是指线性表中的元素按值非递减罗列(即从小到大,但允许相邻元素值相等)。

2 在软件设计中,不属于过程设计工具的是__D____。

A、PDL(过程设计语言)B、PAD 图C、N-S 图D、DFD 图解析:软件设计工具包括:程序流程图、 N-S、PAD、HIPO,判定表, PDL(伪码)。

而 DFD(数据流图)属于结构化分析工具。

3 在 switch(expression)语句中, expression 的数据类型不能是__A____。

A、doubleB、charC、byteD、short解析:表达式expression 只能返回这个几种类型的值: int、byte、short 和 char。

多分支语句把表达式返回的值挨次与每一个 case 子句中的值相比较,如果遇到匹配的值,则执行该 case 子句后的语句序列。

4 下列叙述中,错误的是__D____。

A、父类不能替代子类B、子类能够替代父类C、子类继承父类D、父类包含子类5 通过继承实现代码复用:Java 中所有的类都是通过直接或者间接地继承 ng.Object 类得到的。

继承而得到的类称为子类,被继承的类称为父类。

子类不能继承父类中访问权限为 private 的成员变量和方法,子类可以重写父类的方法,及命名与父类同名的成员变量。

子类通过隐藏父类的成员变量和重写父类的方法,把父类的状态和行为改变为自身的状态和行为。

注意:子类中重写的方法和父类中被重写的方法要具有相同的名字,相同的参数表和相同的返回类型,只是函数体不同。

由于子类继承了父类所有的属性(私有的除外),所以子类对象可以作为父类对象使用。

程序中凡是使用父类对象的地方,都可以用子类对象来代替。

一个对象可以通过引用子类的实例来调用子类的方法。

数据结构与算法试卷(java版)

数据结构与算法试卷(java版)

数据结构与算法试卷(java版)
以下是一份数据结构与算法试卷(Java版)的示例,供您参考:
数据结构与算法试卷(Java版)
一、选择题(请从下列四个选项中选出一个正确答案)
1. 下列数据结构中,哪一个是线性结构?
A. 树
B. 图
C. 队列
D. 栈
2. 下列排序算法中,哪一个是稳定排序算法?
A. 快速排序
B. 冒泡排序
C. 插入排序
D. 归并排序
3. 下列数据结构中,哪一个是栈?
A. 链表
B. 队列
C. 栈
D. 二叉树
4. 下列数据结构中,哪一个是队列?
A. 链表
B. 栈
C. 队列
D. 哈希表
5. 下列排序算法中,哪一个是比较排序算法?
A. 计数排序
B. 插入排序
C. 选择排序
D. 快速排序
二、填空题(请根据题目要求填写正确的答案)
1. 在数据结构中,________是一种树形结构,它由根节点和若干个子树组成。

答案:森林(或二叉树)
2. 在算法中,________是一种分治策略的排序算法,它的基本思想是将待排
序的元素分成若干个子序列,分别对子序列进行排序,最后将排好序的子序列合并成一个有序序列。

答案:归并排序(或合并排序)
3. 在数据结构中,________是一种特殊的线性结构,它只允许在表的一端插
入元素,另一端删除元素。

答案:栈(或队列)
4. 在数据结构中,________是一种非线性结构,它由节点和边组成。

答案:图(或无向图、有向图)。

2012数据结构题资料

2012数据结构题资料

●__(4)__的特点是数据结构中元素的存储地址与其关键字之间存在某种映射关系。

(4)A.树形存储结构B.链式存储结构C.索引存储结构D.散列存储结构●若循环队列以数组 Q[O..m-1] 作为其存储结构变量 rear 表示循环队列中队尾元素的实际位置,其移动按 rear=(rear+1) mod m 进行,变量 length 表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是__(5)__。

(5)A.rear-length B.(rear-length+m) mod mC.(1+rear+m-length) mod m D.m-length●一个含有n个顶点和e条边的简单无向图,在其邻接矩阵存储结构中共有__(6)__个零元素。

(6)A.e B.2e C.n2-e D.n2-2e●若一棵哈夫曼(Huffman)树共有9个顶点,则其叶子结点的个数为__(7)__。

(7)A.4 B.5 C.6 D.7●若采用邻接矩阵来存储简单有向图,则其某一个顶点i的入度等于该矩阵__(8)__。

(8)A.第i行中值为1的元素个数 B.所有值为1的元素总数C.第i行及第i列中值为1的元素总个数D.第i列中值为1的元素个数●在—棵度为3的树中,若有2个度为3的结点,有1个度为2的结点,则有__(9)__个度为0的结点。

(9)A.4 B.5 C.6 D.7●设结点x和y是二叉树中任意的两个结点,在该二叉树的先根遍历序列中x在y之前,而在其后根遍历序列中x在y之后,则x和y的关系是__(10)__。

(10)A.x是y的左兄弟B.x是y的右兄弟C.x是y的祖先D.x是y的后裔●设顺序存储的某线性表共有123个元素,按分块查找的要求等分为3块。

若对索引表采用顺序查找方法来确定子块,且在确定的子块中也采用顺序查找方法,则在等概率的情况下,分块查找成功的平均查找长度为__(11)__。

(11)A.21 B.23 C.41 D.62DCDBDCCB(顺序查找平均查找长度是:(n+1)/2 (1+3)/2+(41+1)/2=23 123/3=41)●在一棵完全二叉树中,其根的序号为1,_(33)_可判定序号为p和q的两个结点是否在同一层。

2012广东省JAVA版数据结构(必备资料)

2012广东省JAVA版数据结构(必备资料)

1、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是( B )。

A)9 B)11 C)15 D)不能确定2、n个顶点的图的最小生成树必定( D ),是不正确的描述。

A)不唯一 B)权的总和唯一C)不含回路 D)有n条边3、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。

A)4 B)5C)6 D)74、广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D )。

A) (G) B) (D) C) C D) D5、广义表head(((a,b),(c,d)))的运算结果为( A )。

A)(a,b) B)(c,d)C)空表 D)((a,b),(c,d))6、设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为( B )。

A)3,2,5,6,4,1 B)1,5,4,6,2,3C)2,4,3,5,1,6 D)4,5,3,6,2,17、广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D )。

A) (G) B) (D) C) C D) D8、在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为( C )。

A)top不变 B)top=0 C)top-- D)top++9、下面关于线性表的叙述中,错误的是哪一个?( D )A)线性表采用顺序存储,必须占用一片连续的存储单元。

B)线性表采用链接存储,便于插入和删除操作。

C)线性表采用链接存储,不必占用一片连续的存储单元。

D)线性表采用顺序存储,便于进行插入和删除操作。

10、如果结点A有3个兄弟,而且B为A的双亲,则B的度为( B )。

A)3 B)4 C)5 D)111、广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D )。

广东财经大学Java2012-2013上学期考试

广东财经大学Java2012-2013上学期考试

广 东 财 经 大 学 试 题 纸_2012—2013_学年第__2 _学期 考试时间共 300 分钟 课程名称 _ 面向对象程序设计 课程代码 110154 课程班号 12计算机实验班 共6页 ----------------------------------------------------------------------------------------------------------------------------------------一、算法设计与分析一个长度为L(L≥1,L 可能大到910)的升序序列S ,处在第⎡⎤L/2(⎡⎤L/2表示不超过L/2的最大整数)个位置的数称为S 的中位数。

例如,若序列S1=(11, 13, 15, 17, 19),则S1的中位数是15。

两个序列的中位数是含它们所有元素的升序序列的中位数。

例如,若S2=(2, 4, 6, 8, 20),则S1和S2的中位数是11。

现有两个等长升序序列A 和B ,试设计一个在时间方面尽可能高效的算法,找出两个序列A 和B 的中位数(合并后的)。

要求:(1)给出算法的基本设计思想。

(2)分析你所设计算法的时间复杂度。

评分说明,设N=2*L ,若你的算法时间复杂度为)(2N O ,得5分,因为若910=L ,你的程序在你的机器上运行,在你可以接受的时间内,程序得不到结果;若你的算法时间复杂度为)(N O ,得10分,因为这种程序在你可以接受的时间内(如几分钟或十几分钟)可以得到结果;若你的算法时间复杂度小于)(N O ,得20分,因为这种程序可以在不到千分之一秒的时间得到结果。

二、程序填空以下是求解八皇后问题的递归程序,其中queensRecursion 方法输出一个可行解,queensRecursionAllSolutions 方法输出所有可行解。

请仔细阅读程序,并参考程序中的注释填空。

//求解八皇后问题的递归算法public class QueensRecursion {/*** @param args*/private int [][] queens =new int [8][8];private int solutions ;//用于统计解的个数public QueensRecursion() {//构造函数,对queens 初始化int i,j;for (i=0;i<8;i++)for (j=0;j<8;j++)queens [i][j]=0;solutions =0;}return solutions;}public void printQueens() {//输出矩阵queensint i,j;for (i=0;i<queens.length;i++) {for (j=0;j<queens[i].length;j++)System.out.print(queens[i][j]+" ");//输出一行System.out.println("");//行末换行}System.out.println("");//输出完一个矩阵后空一行}public boolean positionIJOk(int i, int j) {//检测在queens数组中位置(i,j)是否合法int m,n;boolean ok=true;for (m=i-1;m>=0;m--) {//垂直上方if (queens[m][j]==1) ok=false;}for (m=i-1,n=j-1;m>=0 && n>=0; (1) ) {//左上方if (queens[m][n]==1) ok=false;}for (m=i-1,n=j+1;m>=0 && n<8; (2) ) {//右上方if (queens[m][n]==1) ok=false;}return ok;}public boolean queensRecursion(int i) {//求解八皇后问题,输出一个可行解int j;if (i==8) {printQueens();solutions++;(3) ;} else {for (j=0;j<8;j++) {if (positionIJOk(i,j)) {queens[i][j]=1;if (queensRecursion(i+1)) {return true;//当前位置合法且下一阶问题为true,则返回true } else {(5) ;//下一阶问题为false,则复原}}return false;}}public boolean queensRecursionAllSolutions(int i) {//求解八皇后问题,输出所有可行解int j;if (i==8) {printQueens();solutions++;(4) ;} else {for (j=0;j<8;j++) {if (positionIJOk(i,j)) {queens[i][j]=1;if (queensRecursionAllSolutions(i+1)) {return true;//当前位置合法且下一阶问题为true,则返回true} else {(5) ;//下一阶问题为false,则复原}}}return false;}}public static void main(String[] args) {QueensRecursion eq1,eq2;boolean bl;//测试queensRecursionSystem.out.println("Test queensRecursion...");eq1=new QueensRecursion();bl=eq1.queensRecursion(0);System.out.println("Total solutions: "+eq1.getSolutions()+"\n\n");//测试queensRecursionAllSolutionsSystem.out.println("Test queensRecursionAllSolutions...");eq2=new QueensRecursion();bl=eq2.queensRecursionAllSolutions(0);System.out.println("Total solutions: "+eq2.getSolutions());}}评分说明:每空4分,共20分。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( D )。

A)上三角矩阵 B) 稀疏矩阵
C) 对角矩阵 D) 对称矩阵
2、广义表head(((a,b),(c,d)))的运算结果为( A )。

A)(a,b) B)(c,d)
C)空表 D)((a,b),(c,d))
3、在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为( B )。

A) rear=rear->next; B) front=front->next;
C) rear=front->next; D) front=rear->next ;
4、与无向图相关的术语有( C )。

A)强连通图 B)入度
C)路径 D)弧
5、n个顶点的强连通图至少有( A )条边。

A)n B)n+1 C)n-1 D)n(n-1)
6、已知栈的最大容量为4。

若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( C )。

A) 5,4,3,2,1,6 B) 2,3,5,6,1,4
C) 3,2,5,4,1,6 D) 1,4,6,5,2,3
7、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( D )。

A)上三角矩阵 B) 稀疏矩阵
C) 对角矩阵 D) 对称矩阵
8、串的逻辑结构与( D )的逻辑结构不相同。

A)线性表 B)栈
C)队列 D)集合
9、如果结点A有3个兄弟,而且B为A的双亲,则B的度为( B )。

A)3 B)4 C)5 D)1
10、设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为( A )。

A)p->next=p->next->next B)p=p->next
C)p=p->nexe->next D)p->next=p
11、n个顶点的强连通图至少有( A )条边。

A)n B)n+1 C)n-1 D)n(n-1)
12、在数据结构中,从逻辑上可以把数据结构分为( C )。

A)动态结构和静态结构 B)紧凑结构和非紧凑结构C)线性结构和非线性结构 D)内部结构和外部结构
13、与无向图相关的术语有( C )。

A)强连通图 B)入度
C)路径 D)弧
14、在数据结构中,从逻辑上可以把数据结构分为( C )。

A)动态结构和静态结构 B)紧凑结构和非紧凑结构C)线性结构和非线性结构 D)内部结构和外部结构。

相关文档
最新文档