2014《数据结构》试卷( C 卷)
数据结构试卷带答案

数据结构试卷带答案数据结构试卷(一)一、选择题(20分)1.组成数据的基本单位是( 1.C )。
(A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量2.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是( C )。
(A) 线性结构(B) 树型结构(C) 图型结构(D) 集合3.数组的逻辑结构不同于下列(D)的逻辑结构。
(A) 线性表(B) 栈(C) 队列(D) 树4.二叉树中第i(i≥1)层上的结点数最多有(C)个。
(A) 2i (B) 2i(C) 2i-1(D) 2i-15.设指针变量p指向单链表结点A,则删除结点A的后继结点B 需要的操作为(.A )。
(A) p->next=p->next->next (B) p=p->next(C) p=p->next->next (D) p->next=p6.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是(.C )。
(A) 6 (B) 4 (C) 3 (D) 27.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为(C )。
(A) 100 (B) 40 (C) 55 (D) 808.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为(8.B(A) 3 (B) 4 (C) 5 (D) 19.根据二叉树的定义可知二叉树共有(B)种不同的形态。
(A) 4 (B) 5 (C) 6 (D) 710.设有以下四种排序方法,则(B )的空间复杂度最大。
(A) 冒泡排序(B) 快速排序(C) 堆排序(D) 希尔排序二、填空题(30分)1.设顺序循环队列Q[0:m-1]的队头指针和队尾指针分别为F和R,其中队头指针F指向当前队头元素的前一个位置,队尾指针R指向当前队尾元素所在的位置,则出队列的语句为F =____________;。
全国2014年4月自考数据结构试题和答案

6.一棵二叉树的第7层上最多含有的结点数为A.14B.64C.127D.128正确答案:B(2分)7.下列选项为完全二叉树的是正确答案:A(2分)8.用邻接表表示n个顶点e条边的无向图,其边表结点的总数是A. n×eB. eC. 2eD. n+e正确答案:C(2分)9.无向图中所有顶点的度数之和与所有边数之比是A.1/2B.1C.2D.4正确答案:C(2分)10.采用邻接矩阵存储图时,广度优先搜索遍历算法的时间复杂度为A. O(n)B. O(n+e)C. O(n2)D. O(n3)正确答案:C(2分)11.对序列(15,9,7,8,20,-1,4)进行排序,若一趟排序后的结果为(-1,15,9,7,8,20,4),则采用的排序方法是A.归并排序B.快速排序C.直接选择排序D.冒泡排序正确答案:D(2分)12.比较次数与待排序列初始状态无关的排序方法是A.快速排序B.冒泡排序C.直接插入排序D.直接选择排序正确答案:D(2分)13.查找较快,且插入和删除操作也比较方便的查找方法是A.分块查找B.二分查找C.顺序查找D.折半查找正确答案:A(2分)14.下列关于m阶B树的叙述中,错误..的是A.根结点至多有m棵子树B.所有叶子都在同一层次上C.每个非根内部结点至少有棵子树D.结点内部的关键字可以是无序的正确答案:D(2分)15.在散列查找中处理冲突时,可以采用开放定址法。
下列不是开放定址法的是A.线性探查法B.二次探查法C.双重散列法D.拉链法正确答案:D(2分)非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。
二、填空题(本大题共10小题,每小题2分,共20分)16.数据结构研究的内容包括数据的逻辑结构、________和数据的运算。
正确答案:存储结构(2分)17.头指针为L的带头结点的双循环链表,结点的前趋指针域为prior,后继指针域为next,判断该链表为空的条件是________。
2014山东省数据结构基础试题及答案

41、倘若在对串的插入、删除运算中,期望运算速度最快,则应采用( C )。
A)顺序表示法 B)单字符为结点的单链表表示法
C)等量分块表示法 D)不等量分块表示法
42、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( D )存储方式最节省时间。
A)必须是连续的 B)连续不连续都可以
C)部分地址必须是连续 D)必须是不连续的
29、数据结构中,在逻辑上可以把数据结构分成( B )。
A)动态结构和静态结构
B)线性结构和非线性结构
C)紧凑结构和非紧凑结构
D)内部结构和外部结构
30、数据结构研究的内容是( D )。
A)数据的逻辑结构 B)数据的存储结构
C)建立在相应逻辑结构和存储结构上的算法 D)包括以上三个方面
31、广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D )。
A)9 B)11 C)15 D)不能确定
22、数据结构研究的内容是( D )。
A)数据的逻辑结构 B)数据的存储结构
C)建立在相应逻辑结构和存储结构上的算法 D)包括以上三个方面
23、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。
25、与无向图相关的术语有
26、设给定问题的规模为变量n,解决该问题的算法所需时间为Tn=O(f(n)),Tn表示式中记号O表示( A )。
A)一个数量级别 B)一个平均值
C)不含回路 D)有n条边
16、已知栈的最大容量为4。若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( C )。
《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案第一部分:选择题(每题2分,共20分)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. 下面哪个数据结构用于实现拓扑排序算法?A. 栈B. 队列C. 散列表D. 堆9. 下面哪个数据结构用于实现最短路径算法?A. 栈B. 队列C. 散列表D. 堆10. 下面哪个数据结构用于实现并查集算法?A. 栈B. 队列C. 散列表D. 堆第二部分:填空题(每题2分,共20分)1. 链表是一种______数据结构。
2. 二叉树的节点最多有______个子节点。
3. 堆是一种特殊的______。
4. 散列表的查找效率取决于______。
5. 图的遍历算法包括______和______。
6. 快速排序算法的平均时间复杂度为______。
7. 哈希表中的冲突解决方法有______和______。
8. 最小树算法包括______和______。
9. 最短路径算法包括______和______。
10. 并查集算法用于解决______问题。
第三部分:简答题(每题10分,共50分)1. 请简述栈和队列的区别。
2. 请简述二叉搜索树的特点。
3. 请简述哈希表的原理。
4. 请简述图的深度优先搜索算法。
5. 请简述最小树算法的原理。
第四部分:编程题(每题20分,共50分)1. 编写一个函数,实现链表的插入操作。
数据结构试卷(答案)

3. 简述线性结构与非线性结构的不同点。
答:线性结构反映结点间的逻辑关系是 一对一的,非线性结构反映结点间的逻辑关系是多对多的。
四、 〖00 年统考题〗阅读下列 C 程序段,写出相应的执行结果(每小题 4 分,共 8 分)
1. printf(“Input x”); 2. long int fact(n) int n; {long f; if(n>1)f=n*fact(n-1); else f=1; return(f); } main() {int n; long y; n=5; y=fact(n); printf(“%d,%ld\n”,n,y); }
(2)
(3)
4
( 机 (
C
C) 不装备任何软件的计算机
D) 只装备操作系统的计算
D
)5. 应用软件是指∶ A)所有能够使用的软件 C)所有微机上都应使用的基本软件
B) 能被各应用单位共同使用的某种软件 D) 专门为某一应用目的而编制的软件
( *A )6. 〖00 年省统考〗C 语言中的常量可分为整型常量、实型常量、字符型常量及 (枚举) 四种。 (A) 符号常量 (B)长整型常量 (C) 逻辑常量 (D)二进制整数 ( *C )7. 编译程序的功能是∶ A)发现源程序中的语法错误 C)将源程序编译成目标程序 A )8. 系统软件中最重要的是∶ A) 操作系统 B) 语言处理系统
1. 【严蔚敏习题集 P7 1.3②】 D={d1,d2,d3,d4} R={(d1,d2),(d2,d3),(d3,d4) } 答: d1→d2→d3→d4 d1—无直接前驱,是首结点
d4—无直接后继是尾结点
2.
D={d1,d2,…,d9} R={(d1,d2),(d1,d3),(d3,d4),(d3,d6),(d6,d8),(d4,d5), (d6,d7),(d8,d9) } 答: 此图为树形结构 d1—无直接前驱,是根结点 d2,d5,d7,d9—无直接后继是叶子结点
2014数据结构试题及答案

124.【第7章图】在图的邻接表中用顺序存储结构存储表头结点的优点是____________________。
可以随机访问到任一个顶点的简单链表
125.【第8章图的应用】设有向图G中有向边的集合E={<1,2>,<2,3>,<1,4>,<4,2>,<4,3>},则该图的一种拓扑序列为____________________。
105.【第2章线性表】设有一个顺序循环队列中有M个存储单元,则该循环队列中最多能够存储________个队列元素;当前实际存储________________个队列元素(设头指针F指向当前队头元素的前一个位置,尾指针指向当前队尾元素的位置)。
M-1,(R-F+M)%M
106.【第2章线性表】设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表中_______个数据元素;删除第i个位置上的数据元素需要移动表中_______个元素。
8,64
119.【第5章树】设二叉树中度数为0的结点数为50,度数为1的结点数为30,则该二叉树中总共有_______个结点数。
129
120.【第5章树】设二叉树中结点的两个指针域分别为lchild和rchild,则判断指针变量p所指向的结点为叶子结点的条件是_____________________________________________。
p->lchild==0&&p->rchild==0
121.【第6章特殊树】设哈夫曼树中共有n个结点,则该哈夫曼树中有________个度数为1的结点。
0
122.【第7章图】设有向图G中有n个顶点e条有向边,所有的顶点入度数之和为d,则e和d的关系为_________。
数据结构试卷A卷(含答案)

一、填空题(每空1分,共22分) 1、数据结构被形式地定义为(D, R),其中D是
的有限集合,R是
D上的 有限集合。 2、一个算法的效率可分为 效率和 效率。 3、向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时, 需向后移动 ________个元素。 4、在一个循环队列中,队首指针指向队首元素的 位置。 5、在具有n个单元的循环队列中,队满时共有 个元素。 6、向栈中压入元素的操作是先 ,后 。 7、 称为空串; 称为空白串。 8、假设有二维数组A6×8,每个元素用相邻的6个字节存储,存储器按字 节编址。已知A的起始存储位置(基地址)为1000,则数组A的体积 (存储量)为 ;末尾元素A57的第一个字节地址为 ;若按行 存储时,元素A14的第一个字节地址为 ;若按列存储时,元素A47 的第一个字节地址为 。 9、设一棵完全二叉树具有1000个结点,则此完全二叉树有 个 叶子结点,有 个度为2的结点,有 个结点只有非空左子树, 有 个结点只有非空右子树。 10、线性有序表(a1,a2,a3,…,a256)是从小到大排列的,对一个给 定的值k,用二分法检索表中与k相等的元素,在查找不成功的情况下, 最多需要检索 次。设有100个结点,用二分法查找时,最大比较次数 是 。 11、散列法存储的基本思想是由 决定数据的存储地址。
6.假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分 别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。试为这8个 字母设计哈夫曼编码。使用0~7的二进制表示形式是另一种编码方案。 对于上述实例,比较两种方案的优缺点。
五、算法设计(在下列算法的横线内填上适当的语句或表达式。) 1、直接选择排序 void selectsort (int R[ ] ) // 按递增序对R[ 0 ] ~R[n-1] 进行直接选择排序 { int i, j, k, temp ; for (i=0; i<= ; i++) { k=i ; for (j= ; j<=n-1; j++) if (R[ j ] R[ k ] ) k=j; if ( ) { temp=R[ i ]; R[ i ] = ; R[ k ]=temp; } } } 2、中序遍历二叉树 设二叉树用二叉链表表示,以t为根指针,二叉链表结点的类型为 node;栈s的元素类型为指向node的指针类型, 栈容量m足够大。中序遍 历的非递归算法如下: struct node {char data; node *lc,*rc; }; void preorder (node *t) { node *s[m] ,*p=t ; int top =- 1; do { while (p!=NULL) { s[++top] = } if (top!= -1) {p=s[top- -];
2014年郑大《数据结构》在线测试满分题

B、顺序存取
C、插入删除需要移动元素
D、事先估计存储空间的大小
E、插入删除只需要修改指针 4、在双向循环链表(L 为头指针)中,指针 p 所指结点为尾结点的条件是________。
A、p==L
B、p->next==L
C、L->prior==p
D、L->next==p 5、在双向链表中,每个结点有两个指针域,分别指向________。
A、可以是连续的
B、可以是不连续的
C、必须是连续的
D、必须是不连续的 2、在双向循环链表中,若 s 是指向表中某结点的指针,则________。
A、s->next==s
B、s->next->prior==s
C、s->prior->next ==s
D、s-> prior==s 3、顺序表具备的特点有________。
A、其自身
B、其直接前驱结点
C、其直接后继结点
D、头结点 第三题、判断题(每题 1 分,5 道题共 5 分)
1、顺序表能够以元素在计算机内的物理位置的相邻性来表示线性表中元素之间的逻辑关系。
正确 2、在循环链表中设尾指针比设头指针方便。 ( )
错误
正确
错误
3、线性表的顺序存储结构优于链式存储结构。 ( )
C、所含字符个数相同
D、串值相等 4、以下关于串长的说法正确的是__________。
A、串长相等的两个串相等
B、括串值的引号不被计算在串长之内
C、空串的长度为 0
D、空格串的长度为 0 5、以下关于块链结构的说法正确的是__________。
A、结点大小小,则存储密度小
B、结点大小小,则存储密度大
第三题、判断题(每题 1 分,5 道题共 5 分) 1、n 个叶子的 Huffman 树共有 2n-1 个结点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》试卷(C卷)一、单项选择题1. 空串与空格字符组成的串的区别在于(B )。
A.没有区别B.两串的长度不相等C.两串的长度相等D.两串包含的字符不相同2. 一个子串在包含它的主串中的位置是指( D )。
A.子串的最后那个字符在主串中的位置B.子串的最后那个字符在主串中首次出现的位置C.子串的第一个字符在主串中的位置D.子串的第一个字符在主串中首次出现的位置3. 下面的说法中,只有( C )是正确的。
A.字符串的长度是指串中包含的字母的个数B.字符串的长度是指串中包含的不同字符的个数C.若T包含在S中,则T一定是S的一个子串D.一个字符串不能说是其自身的一个子串4. 两个字符串相等的条件是( D )。
A.两串的长度相等B.两串包含的字符相同C.两串的长度相等,并且两串包含的字符相同D.两串的长度相等,并且对应位置上的字符相同5. 若SUBSTR(S,i,k)表示求S中从第i个字符开始的连续k个字符组成的子串的操作,则对于S=“Beijing&Nanjing”,SUBSTR(S,4,5)=( B )。
A. “ijing”B. “jing&”C. “ingNa”D. “ing&N”6. 若INDEX(S,T)表示求T在S中的位置的操作,则对于S=“Beijing&Nanjing”,T=“jing”,INDEX(S,T)=( C )。
A.2B.3C.4D.57. 若REPLACE(S,S1,S2)表示用字符串S2替换字符串S中的子串S1的操作,则对于S=“Beijing&Nanjing”,S1=“Beijing”,S2=“Shanghai”,REPLACE(S,S1,S2)=( D )。
A. “Nanjing&Shanghai”B. “Nanjing&Nanjing”C. “ShanghaiNanjing”D. “Shanghai&Nanjing”8. 在长度为n的字符串S的第i个位置插入另外一个字符串,i的合法值应该是( C )。
A.i>0B. i≤nC.1≤i≤nD.1≤i≤n+19. 字符串采用结点大小为1的链表作为其存储结构,是指(D )。
A.链表的长度为1B.链表中只存放1个字符C.链表的每个链结点的数据域中不仅只存放了一个字符D.链表的每个链结点的数据域中只存放了一个字符10. 在一棵度为3的树中,度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为(C )个。
A. 4B. 5C. 6D. 711. 假设在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为( B )个。
A. 15B. 16C. 17D. 4712. 假定一棵三叉树的结点数为50,则它的最小高度为( C )。
A. 3B. 4C. 5D. 613. 在一棵二叉树上第4层的结点数最多为( D )。
A. 2B. 4C. 6D. 814. 用顺序存储的方法将完全二叉树中的所有结点逐层存放在数组中R[1..n],结点R[i]若有左孩子,其左孩子的编号为结点(B )。
A. R[2i+1]B. R[2i]C. R[i/2]D. R[2i-1]15. 由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( D )。
A. 24B. 48C. 72D. 5316. 线索二叉树是一种( C )结构。
A. 逻辑B. 逻辑和存储C. 物理D. 线性17. 线索二叉树中,结点p没有左子树的充要条件是( B )。
A. p->lc=NULLB. p->ltag=1C. p->ltag=1 且p->lc=NULLD. 以上都不对18. 设n , m 为一棵二叉树上的两个结点,在中序遍历序列中n在m前的条件是( B )。
A. n在m右方B. n在m 左方C. n是m的祖先D. n是m的子孙19. 如果F是由有序树T转换而来的二叉树,那么T中结点的前序就是F中结点的( B )。
A. 中序B. 前序C. 后序D. 层次序20. 欲实现任意二叉树的后序遍历的非递归算法而不必使用栈,最佳方案是二叉树采用( A )存储结构。
A. 三叉链表B. 广义表C. 二叉链表D. 顺序21. 下面叙述正确的是( D )。
A. 二叉树是特殊的树B. 二叉树等价于度为2的树C. 完全二叉树必为满二叉树D. 二叉树的左右子树有次序之分22. 任何一棵二叉树的叶子结点在先序、中序和后序遍历序列中的相对次序( A )。
A. 不发生改变B. 发生改变C. 不能确定D. 以上都不对二、填空题1. 计算机软件系统中,有两种处理字符串长度的方法:一种是__固定长度__,第二种是___设置长度指针___。
2. 两个字符串相等的充要条件是___两个串的长度相等___和_____对应位置的字符相等__。
3. 设字符串S1= “ABCDEF”,S2= “PQRS”,则运算S=CONCAT(SUB(S1,2,LEN(S2)),SUB(S1,LEN(S2),2))后的串值为__“BCDEDE”__。
4. 串是指___含n个字符的有限序列(n≥0)___。
5. 空串是指__不含任何字符的串__,空格串是指__仅含空格字符的字符串___。
6. 假定一棵树的广义表表示为A(B(E),C(F(H,I,J),G),D),则该树的度为__3___,树的深度为__4___,终端结点的个数为___6___,单分支结点的个数为__1____,双分支结点的个数为__1____,三分支结点的个数为__2_____,C结点的双亲结点为__A__,其孩子结点为_F____和___G_结点。
7. 设F 是一个森林,B 是由F 转换得到的二叉树,F 中有n 个非终端结点,则B 中右指针域为空的结点有__n+1_____个。
8. 对于一个有n 个结点的二叉树,当它为一棵__完全__二叉树时具有最小高度,即为_2log (1)n +⎡⎤⎢⎥___,当它为一棵单支树具有_最大____高度,即为____n___。
9. 由带权为3,9,6,2,5的5个叶子结点构成一棵哈夫曼树,则带权路径长度为_55__。
10. 在一棵二叉排序树上按__中序_____遍历得到的结点序列是一个有序序列。
11. 对于一棵具有n 个结点的二叉树,当进行链接存储时,其二叉链表中的指针域的总数为__2n_____个,其中__n-1_____个用于链接孩子结点,__n+1_____个空闲着。
12. 在一棵二叉树中,度为0的结点个数为n0,度为2的结点个数为n2,则n0=__ n 2+1____。
13. 一棵深度为k 的满二叉树的结点总数为__2k -1_____,一棵深度为k 的完全二叉树的结点总数的最小值为__2k-1___,最大值为__2k -1____。
14. 由三个结点构成的二叉树,共有__5__种不同的形态。
15. 设高度为h 的二叉树中只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为_2h -1___。
16. 一棵含有n 个结点的k 叉树,_单支树_____形态达到最大深度,_完全二叉树___形态达到最小深度。
三、算法设计题1. 设有一个长度为s 的字符串,其字符顺序存放在一个一维数组的第1至第s 个单元中(每个单元存放一个字符)。
现要求从此串的第m 个字符以后删除长度为t 的子串,m<s ,t<(s-m),并将删除后的结果复制在该数组的第s 单元以后的单元中,试设计此删除算法。
1.算法描述为:int delete(r,s,t,m) //从串的第m 个字符以后删除长度为t 的子串char r[ ];int s,t,m;{ int i,j;for(i=1;i<=m;i++)r[s+i]=r[i];for(j=m+t-i;j<=s;j++)r[s-t+j]=r[j];return (1);} //delete2. 设s 和t 是表示成单链表的两个串,试编写一个找出s 中第1个不在t 中出现的字符(假定每个结点只存放1个字符)的算法。
2.算法思想为:(1)链表s中取出一个字符;将该字符与单链表t中的字符依次比较;(2)当t中有与从s中取出的这个字符相等的字符,则从t中取下一个字符重复以上比较;(3)当t中没有与从s中取出的这个字符相等的字符,则算法结束。
设单链表类型为LinkList;注意,此时类型LinkList中的data成分为字符类型。
LinkString find(s,t)LinkString *s, *t;{ LinkString *ps, *pt;ps=s;while(ps!=NULL){ pt=t;while((pt!=NULL)&&(ps->data!=pt->data))pt=pt->next;if(pt= =NULL)ps=NULL;else{ ps=ps->next;s=ps;}}return s;} //find。