2010甘肃省JAVA版数据结构考资料

合集下载

2013甘肃省JAVA版数据结构考试技巧与口诀

2013甘肃省JAVA版数据结构考试技巧与口诀

1、采用链结构存储线性表时,其地址( B )。

A)必须是连续的 B)连续不连续都可以C)部分地址必须是连续 D)必须是不连续的2、广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D )。

A) (G) B) (D) C) C D) D3、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。

A)4 B)5C)6 D)74、以下属于顺序存储结构优点的是( A )。

A) 存储密度大B) 插入运算方便C)删除运算方便D)可方便地用于各种逻辑结构的存储表示5、串的逻辑结构与( D )的逻辑结构不相同。

A)线性表 B)栈C)队列 D)集合6、n个顶点,e条边的有向图的邻接矩阵中非零元素有( C )个。

A)n B)2e C)e D) n+e7、线索二叉树中某结点D,没有左孩子的条件是( B )。

A)D->Lchild=Null B) D->ltag=1C) D->Rchild=Null D) D->ltag=08、下列各种数据结构中属于线性结构的有( A )。

A)栈 B) 二叉树C) 广义表 D) 图9、设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为( A )。

A)p->next=p->next->next B)p=p->nextC)p=p->nexe->next D)p->next=p10、采用链结构存储线性表时,其地址( B )。

A)必须是连续的 B)连续不连续都可以C)部分地址必须是连续 D)必须是不连续的11、下列序列中,执行第一趟快速排序后得到的序列是( 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]12、串的逻辑结构与( D )的逻辑结构不同。

Java 数据结构经典题

Java 数据结构经典题

1.把二元查找树转变成排序的双向链表题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。

要求不能创建任何新的结点,只调整指针的指向。

10/ \6 14/ \ / \4 8 12 16转换成双向链表4=6=8=10=12=14=16。

首先我们定义的二元查找树节点的数据结构如下:struct BSTreeNode{int m_nValue; // value of nodeBSTreeNode *m_pLeft; // left child of nodeBSTreeNode *m_pRight; // right child of node};2.设计包含min函数的栈。

定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。

要求函数min、push以及pop的时间复杂度都是O(1)。

3.求子数组的最大和题目:输入一个整形数组,数组里有正数也有负数。

数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。

求所有子数组的和的最大值。

要求时间复杂度为O(n)。

例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。

4.在二元树中找出和为某一值的所有路径题目:输入一个整数和一棵二元树。

从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。

打印出和与输入整数相等的所有路径。

例如输入整数22和如下二元树10/ \5 12/ \4 7则打印出两条路径:10, 12和10, 5, 7。

二元树节点的数据结构定义为:struct BinaryTreeNode // a node in the binary tree{int m_nValue; // value of nodeBinaryTreeNode *m_pLeft; // left child of nodeBinaryTreeNode *m_pRight; // right child of node};5.查找最小的k个元素题目:输入n个整数,输出其中最小的k个。

2010年甘肃省JAVA版数据结构考资料

2010年甘肃省JAVA版数据结构考资料

22、如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用 B 。
A.只有表头指针没有表尾指针的循环单链表
B.只有表尾指针没有表头指针的循环单链表
C.非循环双链表
D.循环双链表
23、深度为k的完全二叉树至多有( )个结点
A B C D
A.p->next == NULL B.p == NULL
C.p->next ==head D.p == head
36、下列选项中,其平均查找性能与基于二叉排序树的查找相当的是
A.二分查找 B.顺序查找 C.分块查找 D.索引顺序查找
37、在平衡二叉树中插入一个结点后造成不平衡,设最低的不平衡结点为A,并已知A的左孩子平衡因子为0,右孩子平衡因子为1,则应该做( )型调整以使其平衡
C)DEBFGCA D)GFCEBDA
14、在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构
C.线性结构和非线性结构 D.内部结构和外部结构
15、在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是 B 。
19、以下说法正确的是 D 。
A.数据项是数据的基本单位
B.数据元素是数据的最小单位
C.数据结构是带结构的数据项的集合
D.一些表面上很不相同的数据可以有相同的逻辑结构
20、下列选项中,符合堆定义的是
A.{102,24,55,60,89,93}
B.{24,89,55,60,93,102}
A LL B LR C RL D RR
38、深度为k的完全二叉树至多有( )个结点

数据结构Java版第二章习题

数据结构Java版第二章习题

(按照自己的情况选作部分习题,不要抄袭)第二章习题顺序存储线性表一判断题1.线性表的逻辑顺序与存储顺序总是一致的。

×2.顺序存储的线性表可以按序号随机存取。

√3.顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。

×4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此是属于同一数据对象。

√5.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。

×6.在线性表的顺序存储结构中,插入和删除时,移动元素的个数与该元素的位置有关。

√二单选题 (请从下列A,B,C,D选项中选择一项)1.线性表是( A ) 。

(A) 一个有限序列,可以为空; (B) 一个有限序列,不能为空;(C) 一个无限序列,可以为空; (D) 一个无序序列,不能为空。

2.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。

插入一个元素时平均要移动表中的(A)个元素。

(A) n/2 (B) n+1/2 (C) n -1/2 (D) n三填空题1.在顺序表中做插入操作时首先检查___表是否满了______________。

四算法设计题1.设线性表存放在向量A[arrsize]的前elenum个分量中,且递增有序。

试写一算法,将x 插入到线性表的适当位置上,以保持线性表的有序性。

并且分析算法的时间复杂度。

2.已知一顺序表A,其元素值非递减有序排列,编写一个函数删除顺序表中多余的值相同的元素。

3.编写一个函数,从一给定的顺序表A中删除值在x~y(x<=y)之间的所有元素,要求以较高的效率来实现。

提示:可以先将顺序表中所有值在x~y之间的元素置成一个特殊的值,并不立即删除它们,然后从最后向前依次扫描,发现具有特殊值的元素后,移动其后面的元素将其删除掉。

4.线性表中有n个元素,每个元素是一个字符,现存于向量R[n]中,试写一算法,使R 中的字符按字母字符、数字字符和其它字符的顺序排列。

2010甘肃省数据结构基础考试题库

2010甘肃省数据结构基础考试题库

A)9 B)11 C)15 D)不能确定2、设给定问题的规模为变量n,解决该问题的算法所需时间为Tn=O(f(n)),Tn表示式中记号O表示( A )。

A)一个数量级别 B)一个平均值C)一个最大值 D)一个均方值3、n个顶点的强连通图至少有( A )条边。

A)n B)n+1 C)n-1 D)n(n-1)4、队列的操作的原则是( A )。

A)先进先出 B) 后进先出C) 只能进行插入 D) 只能进行删除5、链式存储的存储结构所占存储空间( A )。

A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针B)只有一部分,存放结点值C)只有一部分,存储表示结点间关系的指针D)分两部分,一部分存放结点值,另一部分存放结点所占单元数6、n个顶点的图的最小生成树必定( D ),是不正确的描述。

A)不唯一 B)权的总和唯一C)不含回路 D)有n条边7、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( D )。

A)上三角矩阵 B) 稀疏矩阵C) 对角矩阵 D) 对称矩阵8、已知广义表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)))))9、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是( B )。

A)9 B)11 C)15 D)不能确定10、链式存储的存储结构所占存储空间( A )。

A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针B)只有一部分,存放结点值C)只有一部分,存储表示结点间关系的指针D)分两部分,一部分存放结点值,另一部分存放结点所占单元数A)9 B)11 C)15 D)不能确定12、队列的操作的原则是( A )。

2012甘肃省数据结构(C++)(必备资料)

2012甘肃省数据结构(C++)(必备资料)

1、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a??11为第一个元素,其存储地址为1,每元素占1个地址空间,则a85的地址为( B )。

A)13 B)33 C)18 D)402、下面关于线性表的叙述中,错误的是哪一个?( D )A)线性表采用顺序存储,必须占用一片连续的存储单元。

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

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

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

3、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( D )存储方式最节省时间。

A)顺序表B)双链表C)带头结点的双循环链表D)单循环链表4、队列的操作的原则是( A )。

A)先进先出 B) 后进先出C) 只能进行插入 D) 只能进行删除5、下面程序段的时间复杂度是( 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)6、串的逻辑结构与( D )的逻辑结构不相同。

A)线性表 B)栈C)队列 D)集合7、串的逻辑结构与( D )的逻辑结构不同。

A)线性表 B)栈C)队列 D)树8、线索二叉树中某结点D,没有左孩子的条件是( B )。

A)D->Lchild=Null B) D->ltag=1C) D->Rchild=Null D) D->ltag=09、设给定问题的规模为变量n,解决该问题的算法所需时间为Tn=O(f(n)),Tn表示式中记号O表示( A )。

A)一个数量级别 B)一个平均值C)一个最大值 D)一个均方值10、向一个栈顶指针为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;11、数据结构中,在逻辑上可以把数据结构分成( B )。

2010甘肃省JAVA版数据结构(必备资料)

2010甘肃省JAVA版数据结构(必备资料)

1、采用链结构存储线性表时,其地址( B )。

A)必须是连续的 B)连续不连续都可以C)部分地址必须是连续 D)必须是不连续的2、用一维数组A进行顺序存储时,若起始地址为loc(A1),元素长度为c,则A的第i个数组单元在存放地址loc(Ai),等于( B )。

A)loc(A1)+i*c B)loc(A1)+(i-1)*cC)loc(A1)+i*c+1 D)loc(A1)+(i+1)*c3、n个顶点的图的最小生成树必定( D ),是不正确的描述。

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

A)4 B)5C)6 D)75、以下属于顺序存储结构优点的是( A )。

A) 存储密度大B) 插入运算方便C)删除运算方便D)可方便地用于各种逻辑结构的存储表示6、n个顶点的图的最小生成树必定( D ),是不正确的描述。

A)不唯一 B)权的总和唯一C)不含回路 D)有n条边7、下列序列中,执行第一趟快速排序后得到的序列是( 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]8、向一个栈顶指针为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;9、在一个链队列中,假定front和rear分别为队首和队尾指针,则插入一个结点的操作为( B )。

A)front=front->next; B) rear=rear->next;C) rear=front->next; D) front=rear->next ;10、( C )在进行插入操作时,常产生假溢出现象。

数据结构Java版第二章习题

数据结构Java版第二章习题

(依据自己的状况选作部分习题,不要剽窃)第二章习题次序储存线性表一判断题1.线性表的逻辑次序与储存次序老是一致的。

×2.次序储存的线性表能够按次号随机存取。

√3.次序表的插入和删除操作不需要付出很大的时间代价,由于每次操作均匀只有近一半的元素需要挪动。

×4.线性表中的元素能够是各种各种的,但同一线性表中的数据元素拥有同样的特征,所以是属于同一数据对象。

√5.在线性表的次序储存构造中,逻辑上相邻的两个元素在物理地点上其实不必定紧邻。

×6.在线性表的次序储存构造中,插入和删除时,挪动元素的个数与该元素的地点相关。

√二单项选择题 ( 请从以下 A,B,C,D 选项中选择一项 )1.线性表是 ( A )。

(A)一个有限序列,能够为空;(B)一个有限序列,不可认为空;(C)一个无穷序列,能够为空;(D)一个无序序列,不可认为空。

2.对次序储存的线性表,设其长度为n,在任何地点上插入或删除操作都是等概率的。

插入一个元素时均匀要挪动表中的( A )个元素。

(A) n/2(B) n+1/2(C) n -1/2(D) n三填空题1.在次序表中做插入操作时第一检查___表能否满了 ______________。

四算法设计题1.设线性表寄存在向量A[arrsize]的前elenum个重量中,且递加有序。

试写一算法,将x插入到线性表的适合地点上,以保持线性表的有序性。

而且剖析算法的时间复杂度。

2.已知一次序表A,其元素值非递减有序摆列,编写一个函数删除次序表中剩余的值同样的元素。

3.编写一个函数,从一给定的次序表A 中删除值在 x~y(x<=y) 之间的所有元素,要求以较高的效率来实现。

提示:能够先将序表中所有在 x~y 之的元素置成一个特别的,其实不立刻除它,而后从最后向前挨次描,拥有特别的元素后,移后来面的元素将其除去。

4.性表中有 n 个元素,每个元素是一个字符,存于向量R[n] 中,写一算法,使 R 中的字符按字母字符、数字字符和其余字符的序摆列。

数据结构复习资料,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.集合是一种聚集、组织了其他对象的对象。

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

《数据结构(Java版)(第4版)》样卷及答案

《数据结构(Java版)(第4版)》样卷及答案
public static StringBuffer trim(StringBuffer s)
//将 s 中所有空格删除,返回操作后的 s 串
{
int i=0; while (i<s.length() && s.charAt(i)!=' ')
//i 记住第 1 个空格下标
i++;
for (int j=i; j<s.length(); j++) if (s.charAt(j)!=' ') s.setCharAt(i++, s.charAt(j));
String target="aababbabac", pattern="ab", str="aba";
System.out.println("\""+target+"\".replaceAll(\""+pattern+"\", \""+str+"\")=\""+
target.replaceAll(pattern,str)+"\"");
5. mat+(i*n+j)*4=1000+(4*8+5)*4=1148 6. n*(n-1)/2 7. {43,61*,72,96};{43,17,20,32}。解释见《习题解答》第 54 页习 8-9。 8. 见《数据结构(Java 版)(第 4 版)习题解答》第 57 页习 9-4。
二、 问答题(50 分=5 分×10 题)

《数据结构(Java语言版)》试卷1

《数据结构(Java语言版)》试卷1

长沙民政学院2015年上学期期末考试卷(A卷)考试科目:《数据结构》考试形式:闭卷适应班级:软开 1431-1439一、单项选择(共20题,每题2分, 共40分)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.数据元素的物理顺序与逻辑顺序相同6、若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。

A. 单链表B. 仅有头指针的单循环链表C. 双链表D.仅有尾指针的单循环链表7、栈中元素的进出原则是()A. 先进先出B.后进先出C. 栈空则进D. 栈满则出8、若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为( )A.i B.n=i C.n-i+1 D.不确定9、若依次输入数据元素序列{a,b,c,d,e,f,g}进栈,出栈操作可以和入栈操作间隔进行,则下列哪个元素序列可以由出栈序列得到?( )A.{ c,d,b,e,g,a,f} B.{ f,e,g,d,a,c,b}C.{e,f,d,g,b,c,a} D.{d,e,c,f,b,g,a}10、一个栈的入栈序列是1,2,3,4,5,则下列序列中不可能的出栈序列是( )A.2,3,4,1,5 B.2,3,1,4,5C.5,4,1,3,2 D.1,5,4,3,211、判断一个循环队列( m0为最大队列长度(以元素为单位),front和rear分别为队列的队头指针和队尾指针) 为空队列的条件是( )。

数据结构(Java版)-习题解答与实验指导

数据结构(Java版)-习题解答与实验指导

数据结构(Java版)习题解答与实验指导目录第1章绪论 (1)1.1 数据结构的基本概念 (1)1.2 算法 (2)第2章线性表 (3)2.1 线性表抽象数据类型 (3)2.2 线性表的顺序存储和实现 (4)2.2.1 线性表的顺序存储结构 (4)2.2.2 顺序表 (5)2.2.3 排序顺序表 (7)2.3 线性表的链式存储和实现 (9)2.3.1 单链表 (9)【习题2-8】单链表结点类问题讨论。

(9)【习2.1】使用单链表求解Josephus环问题。

(12)【习2.2】集合并运算,单链表深拷贝的应用。

(14)2.3.2 双链表 (16)【习2.3】循环双链表的迭代方法。

(19)【习2.4】循环双链表合并连接。

(19)第3章串 (21)3.1 串抽象数据类型 (21)3.2 串的存储和实现 (22)3.2.1 串的存储结构 (22)3.2.2 常量字符串类 (22)【习3.1】C/C++语言,string.h中的strcpy()和strcat()函数存在下标越界错误。

(22)【思考题3-1】逆转String串,分析算法效率。

(24)【实验题3-1】MyString类,比较串大小,忽略字母大小写。

25【例3.2思考题3-2】MyInteger整数类,返回value的radix进制原码字符串。

(26)【实验题3-9】浮点数类。

(27)3.2.3 变量字符串类 (30)【实验题3-11】删除变量串中的所有空格。

4-样卷 (30)3.3 串的模式匹配 (31)3.3.1 Brute-Force模式匹配算法 (31)3.3.2 模式匹配应用 (32)【思考题3-4,实验题3-13】MyString类,replaceAll(pattern,s)改错。

(32)3.3.3 KMP模式匹配算法 (33)第4章栈和队列 (36)4.1 栈 (36)4.2 队列 (38)4.3 递归 (41)【习4.1】打印数字塔。

数据结构考试开卷准备资料

数据结构考试开卷准备资料

数据结构考试开卷准备资料一、线性表(顺序和链式,基本)1.就地逆置:例:70 30 40 10,将其分为两个区间,逆置前和逆置后,每次将逆置前中的第一个元素放在逆置后区中第一个位置[]70 10 30 40;[70]10 30 40;[10 70]30 40;[30 10 70]40;[40 30 10 70]2.删除大小范围从x到y之间元素方法1:用遍历判断的方法,直接从表中删除,顺序表则还需要在每个元素删除之后后面的元素还要向前移动。

(时间代价为O(n^2))方法2:建立新的表,遍历原来的表,不满足的元素加到新表中,满足条件的不加,最后将新表赋值给旧表。

(时间代价为O(n),但是还有额外的空间代价O(n))3.用线性表表示多项式并实现多项式相加(以链表为例)建立一个新的类Node,里面有三个元素,次数(int),系数(int),下一个元素地址(Node),按照这个类型建立链表,并在建立之后按照次数降序排序。

多项式相加:多项式A和多项式B,获取两个多项式的最高次数和最低次数,按照i=最高次项到最低次项逐项判断A和B内是否有该次项,无则记为0,有则提取系数进行相加,最终得到最后结果。

4.交换两个单链表两个元素位置(分别记为A和B)方法1:直接交换两个元素的值(temp=A.data;A.data=B.data;B.data=temp;)方法2:交换两个结点,A的前面结点的Next指向某个temp,B的前面结点的Next指向A,temp指向B;A的Next指向temp1,B的Next指向temp2,此后B的Next指向temp1,B 的Next指向temp2,完成交换。

5.多项式求导数。

由3作为基础。

次数不为零的结点,系数等于次数乘系数,次数等于自己减一,次数为零的,系数等于零。

二、栈1.汉诺塔递归,要移动n层的汉诺塔就意味着要移动n-1层在移动最后一层,所以最终是先移动第一层。

例:三层汉诺塔,就意味着先移动2层,又意味着先移动1层。

数据结构(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版)

数据结构与算法试卷(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. 在数据结构中,________是一种非线性结构,它由节点和边组成。

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

2010云南省JAVA版数据结构(必备资料)

2010云南省JAVA版数据结构(必备资料)

1、串的逻辑结构与( D )的逻辑结构不相同。

A)线性表 B)栈C)队列 D)集合2、n个顶点的图的最小生成树必定( D ),是不正确的描述。

A)不唯一 B)权的总和唯一C)不含回路 D)有n条边3、栈进行插入和删除操作的特点是( A )。

A)LIFO B)FIFOC)FCFS D)HPF4、设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为( A )。

A)p->next=p->next->next B)p=p->nextC)p=p->nexe->next D)p->next=p5、下列序列中,执行第一趟快速排序后得到的序列是( 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]6、广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D )。

A) (G) B) (D) C) C D) D7、链式存储的存储结构所占存储空间( A )。

A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针B)只有一部分,存放结点值C)只有一部分,存储表示结点间关系的指针D)分两部分,一部分存放结点值,另一部分存放结点所占单元数8、在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为( C )。

A)top不变 B)top=0 C)top-- D)top++9、设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为( A )。

A)p->next=p->next->next B)p=p->nextC)p=p->nexe->next D)p->next=p10、( C )在进行插入操作时,常产生假溢出现象。

2011年甘肃省数据结构试题集(10套题并附带答案)考资料

2011年甘肃省数据结构试题集(10套题并附带答案)考资料
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
C.s->next = p;s->prior = p->prior;p->prior = s;p->prior->next = s
D.s->next = p;s->prior = p->prior;p->prior->next = s;p->prior = s
43、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。
A.单链表 B.静态链表 C.线性链表 D.顺序存储结构
A.动态结构和静态结构 B.紧凑结构和非紧凑结构
C.线性结构和非线性结构 D.内部结构和外部结构
40、若一个栈以数组V[0..n-1]存储,初始栈顶指针top为n,则x入栈的正确操作是
A.top=top+1;V[top]=x B.V[top]=x;top=top+1
A.顺序栈需要判定栈空,链栈也需要判定
B.顺序栈需要判定栈空,而链栈不需要判定
C.顺序栈不需要判定栈空,而链栈需要判定
D.顺序栈不需要判定栈空,链栈也不需要判定
26、对于图1所示的二叉树,其后序序列为(C )。
A)ABDECFG B)DBEAFCG
C)DEBFGCA D)GFCEBDA
A.n—i B.n—i—l C.i D.i+1

2010甘肃省数据库考试含答案基础

2010甘肃省数据库考试含答案基础

1、本题应使用深度优先遍历,从主调函数进入dfs(v)时,开始记数,若退出dfs()前,已访问完有向图的全部顶点(设为n个),则有向图有根,v为根结点。

将n个顶点从1到n编号,各调用一次dfs()过程,就可以求出全部的根结点。

题中有向图的邻接表存储结构、记顶点个数的变量、以及访问标记数组等均设计为全局变量。

建立有向图g的邻接表存储结构参见上面第2题,这里只给出判断有向图是否有根的算法。

int num=0, visited[]=0 //num记访问顶点个数,访问数组visited初始化。

const n=用户定义的顶点数;AdjList g ; //用邻接表作存储结构的有向图g。

void dfs(v){visited [v]=1; num++; //访问的顶点数+1if (num==n) {printf(“%d是有向图的根。

\n”,v); num=0;}//ifp=g[v].firstarc;while (p){if (visied[p->adjvex]==0) dfs (p->adjvex);p=p->next;} //whilevisited[v]=0; num--; //恢复顶点v}//dfsvoid JudgeRoot()//判断有向图是否有根,有根则输出之。

{static int i ;for (i=1;i<=n;i++ ) //从每个顶点出发,调用dfs()各一次。

{num=0; visited[1..n]=0; dfs(i); }}// JudgeRoot算法中打印根时,输出顶点在邻接表中的序号(下标),若要输出顶点信息,可使用g[i].vertex。

2、设有一个数组中存放了一个无序的关键序列K1、K2、…、Kn。

现要求将Kn放在将元素排序后的正确位置上,试编写实现该功能的算法,要求比较关键字的次数不超过n。

51. 借助于快速排序的算法思想,在一组无序的记录中查找给定关键字值等于key的记录。

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

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

A)top不变 B)top=0 C)top-- D)top++
2、线性表的链接实现有利于( A )运算。

A)插入 B)读元素
C)查找 D)定位
3、倘若在对串的插入、删除运算中,期望运算速度最快,则应采用( C )。

A)顺序表示法 B)单字符为结点的单链表表示法
C)等量分块表示法 D)不等量分块表示法
4、数据结构研究的内容是( D )。

A)数据的逻辑结构 B)数据的存储结构
C)建立在相应逻辑结构和存储结构上的算法 D)包括以上三个方面
5、链式存储的存储结构所占存储空间( A )。

A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B)只有一部分,存放结点值
C)只有一部分,存储表示结点间关系的指针
D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
6、链式存储的存储结构所占存储空间( A )。

A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B)只有一部分,存放结点值
C)只有一部分,存储表示结点间关系的指针
D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
7、用一维数组A进行顺序存储时,若起始地址为loc(A1),元素长度为c,则A的第i个数组单元在存放地址loc(Ai),等于( B )。

A)loc(A1)+i*c B)loc(A1)+(i-1)*c
C)loc(A1)+i*c+1 D)loc(A1)+(i+1)*c
8、已知广义表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)))))
9、设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为( A )。

A)p->next=p->next->next; B) p=p->next;
C)p=p->next->next; D) p->next=p;
10、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。

当用二分查找法查找键值为84的结点时,经( B )比较后查找成功。

A) 4 B)3 C)2 D)12
11、下列序列中,执行第一趟快速排序后得到的序列是( 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]
12、下列各种数据结构中属于线性结构的有( A )。

A)栈 B) 二叉树
C) 广义表 D) 图
13、数据结构中,在逻辑上可以把数据结构分成( B )。

A)动态结构和静态结构
B)线性结构和非线性结构
C)紧凑结构和非紧凑结构
D)内部结构和外部结构
14、设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为( B )。

A)3,2,5,6,4,1 B)1,5,4,6,2,3
C)2,4,3,5,1,6 D)4,5,3,6,2,1
15、倘若在对串的插入、删除运算中,期望运算速度最快,则应采用( C )。

A)顺序表示法 B)单字符为结点的单链表表示法
C)等量分块表示法 D)不等量分块表示法
16、下面程序段的时间复杂度是( 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)
17、下列各种数据结构中属于线性结构的有( A )。

A)栈 B) 二叉树
C) 广义表 D) 图。

相关文档
最新文档