数据结构考试题(二)
数据结构-数据结构历年考题及答案2
中国矿业大学2011-2012学年《数据结构》试卷(A卷)(考试时间:100分钟)一. 填空(每空2分,共40分)1. 数据结构式具有相同性质的数据元素的(1)。
2. 通常程序在调用另一个程序时,都需要使用一个(2)来保存被调用程序内分配的局部变量、形式参数的存储空间以及返回地址。
3. 有6行8列的二维数组A,每个元素用相邻的6个字节存储,存储器按字节编址,已知A的起始存储地址(基址)为1000,在行优先存储和列优先存贮情况下A[5,5]的存储地址分别为__(3)_____,_____(4)____。
4. 完全二叉树第4 个节点的父节点是第 (5) 节点,左孩子是第 (6) 个节点。
如果该二叉树有10层,则共有 (7) 个节点。
5. 请描述在循环队列Q中,队头和队尾指针分别由front和rear表示,该队列有10个存储空间,判断队空和队满的条件分别分:_____(8)________,_______(9)_________。
6. 字符串t=”child”,s=”cake”,请写出下列函数的结果:StrLength(t) =(10)__;Concat(SubString(s,3,1),SubString(t,2,2))=____(11)___。
7. 一棵二叉树为则后序序列为(12),中序序列为(13),先序序列为__(14)____。
8. 请用数据序列{53,17,12,66,58,70,87,25,56,60 }构造一棵二叉排序树_(15)_。
9.。
一个栈输入的序列式1,2,3,则可能的且以2为开头的输出序列是 (16) ,不可能的序列是____(17)____。
10. 有n个结点的无向完全图的边数分别为_______(18)_______。
11. 要从数据:2,3,4,8,9,11,13查找11,若采用折半查找法,则在(19)次比较后,才找到该数据。
12. 在直接插入排序、希尔排序、冒泡排序和快速排序中,平均情况下(20)_____最快。
数据结构--第二章考试题库(含答案)
第2章线性表一选择题1.下述哪一条是顺序存储结构的优点?()【北方交通大学 2001 一、4(2分)】A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示2.下面关于线性表的叙述中,错误的是哪一个?()【北方交通大学 2001 一、14(2分)】A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
3.线性表是具有n个()的有限序列(n>0)。
【清华大学 1998 一、4(2分)】A.表元素 B.字符 C.数据元素 D.数据项 E.信息项4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
【哈尔滨工业大学 2001二、1(2分)】A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。
【南开大学 2000 一、3】A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表6.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。
A. 单链表B.单循环链表C. 带尾指针的单循环链表D.带头结点的双循环链表【合肥工业大学 2000 一、1(2分)】7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。
则采用()存储方式最节省运算时间。
【北京理工大学 2000一、1(2分)】A.单链表 B.双链表 C.单循环链表 D.带头结点的双循环链表8. 静态链表中指针表示的是(). 【北京理工大学 2001 六、2(2分)】A.内存地址 B.数组下标 C.下一元素地址 D.左、右孩子地址9. 链表不具有的特点是()【福州大学 1998 一、8 (2分)】A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比10. 下面的叙述不正确的是()【南京理工大学 1996 一、10(2分)】A.线性表在链式存储时,查找第i个元素的时间同i的值成正比B. 线性表在链式存储时,查找第i个元素的时间同i的值无关C. 线性表在顺序存储时,查找第i个元素的时间同i 的值成正比D. 线性表在顺序存储时,查找第i个元素的时间同i的值无关11. 线性表的表元存储方式有((1))和链接两种。
《数据结构》期末考试试卷试题及答案
《数据结构》期末考试试卷试题及答案第一部分:选择题(每题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. 编写一个函数,实现链表的插入操作。
数据结构考试题2
else
break;
}
while (p!=NULL && q!=NULL && p->data==q->data)
{//当两者值相等时同步后移
p=p->next;
q=q->next;
}
if (q==NULL)//当B中节点比较完毕返回1
return 1;
else//否则返回0
return 0;
三
1.设A=(a1,a2,…,an),B=(b1,b2,…,bm)是两个递增有序的线性表(其中n、m均大于1),且所有数据元素均不相同。假设A、B均采用带头节点的单链表存放,设计一个尽可能高效的算法判断B是否为A的一个子序列,并分析你设计的算法的时间复杂度和空间复杂度。(15分)
2.假设二叉树b采用二叉链存储结构存储,试设计一个算法,输出该二叉树中从根节点出发的第一条最长的路径长度,并输出此路径上各节点的值。并分析你设计的算法的时间复杂度和空间复杂度。(15分)
{//pathlen和maxpathlen的初值均为0
int i;
if (b==NULL)
{if (pathlen>maxpathlen)//通过比较求最长路径
{for (i=pathlen-1;i>=0;i--)
maxpath[i]=path[i];
maxpathlen=pathlen;
}
}
else
}
}
A. O(n)B. O( )
C. O(nlog2n)D. O(log2n)
3.在一个双链表中,删除p所指节点(非首、尾节点)的操作是。
A.p->prior->next=p->next;p->next->prior=p->prior;
东北大学22春“计算机科学与技术”《数据结构Ⅱ》期末考试高频考点版(带答案)试卷号:5
东北大学22春“计算机科学与技术”《数据结构Ⅱ》期末考试高频考点版(带答案)一.综合考核(共50题)1.假设一棵完全二叉树按层次遍历的顺序依次存放在数组BT[m]中,其中根结点存放在BT[0],若BT[i]中的结点有左孩子,则左孩子存放在A.BT[i/2]B.BT[2*i]C.BT[2*i-1]D.BT[2*i+1]参考答案:D2.若要在O(1)的时间复杂度上实现两个循环链表头尾相接,则应对两个循环链表各设置一个指针,分别指向()。
A.各自的头结点B.各自的尾结点C.各自的第一个元素结点D.一个表的头结点,另一个表的尾结点参考答案:B3.对长度为15的有序顺序表进行二分查找,在各记录的查找概率均相等的情况下,查找成功时所需进行的关键字比较次数的平均值为A.55/15B.51/15C.49/15D.39/15参考答案:C4.栈和队列都是A.顺序存储的线性结构D.链式存储的线性结构参考答案:C5.下列程序段 for(i=1;iA.O(n)B.O(1+n)C.O(1)D.O(0)参考答案:A6.树有先根遍历和后根遍历,树可以转化为对应的二叉树。
下面的说法正确的是A.树的后根遍历与其对应的二叉树的后根遍历相同B.树的后根遍历与其对应的二叉树的中根遍历相同C.树的先根遍历与其对应的二叉树的中根遍历相同D.以上都不对参考答案:B7.如果在排序过程中,每次均将一个待排序的记录按关键字大小加入到前面已经有序的子表中的适当位置,则该排序方法称为()。
A.插入排序B.归并排序C.冒泡排序D.堆排序参考答案:A8.当采用分快查找时,数据的组织方式为A.数据分成若干块,每块(除最后一块外)中数据个数需相同B.数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块C.数据分成若干块,每块内数据有序D.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块9.在一个单链表中,若删除*p结点的后继结点,则执行操作()。
北林 数据结构期末考试(二) 判断题
数据结构判断题天涯古巷 出品( × ) 1. 数据元素是数据的最小单位。
( × ) 2. 记录是数据处理的最小单位。
( × ) 3. 数据的逻辑结构是指数据的各数据项之间的逻辑关系。
( × ) 4.算法的优劣与算法描述语言无关,但与所用计算机有关。
( √ ) 5.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
( √ ) 6.数据的物理结构是指数据在计算机内的实际存储形式。
( × ) 7. 数据结构的抽象操作的定义与具体实现有关。
第二章( × ) 1. 链表的每个结点中都恰好包含一个指针。
答:错,链表中的结点可含多个指针域,分别存放多个指针。
例如,双向链表中的结点可以含有两个指针域,分别存放指向其直接前趋和直接后继结点的指针。
( × ) 2. 链表的物理存储结构具有同链表一样的顺序。
答:错,链表的存储结构特点是无序,而链表的示意图有序。
( × ) 3. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
答:错,链表的结点不会移动,只是指针内容改变。
( × ) 4. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
答:错,混淆了逻辑结构与物理结构,链表也是线性表!且即使是顺序表,也能存放记录型数据。
( × ) 5. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
答:错,正好说反了。
顺序表才适合随机存取,链表恰恰适于“顺藤摸瓜”( × ) 6. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
答:错,前一半正确,但后一半说法错误,那是链式存储的优点。
顺序存储方式插入、删除运算效率较低,在表长为n的顺序表中,插入和删除一个数据元素,平均需移动表长一半个数的数据元素。
( × ) 7. 线性表在物理存储空间中也一定是连续的。
数据结构考试题库含答案
数据结构考试题库含答案数据结构习题集含答案⽬录⽬录 (1)选择题 (2)第⼀章绪论 (2)第⼆章线性表 (4)第三章栈和队列 (5)第四章串 (6)第五章数组和⼴义表 (7)第六章树和⼆叉树 (7)第七章图 (9)第⼋章查找 (11)第九章排序 (12)简答题 (15)第⼀章绪论 (15)第⼆章线性表 (20)第三章栈和队列 (22)第四章串 (24)第五章数组和⼴义表 (24)第六章树和⼆叉树 (26)第七章图 (31)第⼋章查找 (33)第九章排序 (34)编程题 (36)第⼀章绪论 (36)第⼆章线性表 (36)第三章栈和队列 (46)第四章串 (46)第五章数组和⼴义表 (46)第六章树和⼆叉树 (46)第七章图 (46)第⼋章查找 (46)第九章排序 (52)选择题第⼀章绪论1. 数据结构这门学科是针对什么问题⽽产⽣的?(A )A、针对⾮数值计算的程序设计问题B、针对数值计算的程序设计问题C、数值计算与⾮数值计算的问题都针对D、两者都不针对2. 数据结构这门学科的研究内容下⾯选项最准确的是(D )A、研究数据对象和数据之间的关系B、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3. 某班级的学⽣成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那么下⾯关于数据对象、数据元素、数据项描述正确的是(C )A、某班级的学⽣成绩表是数据元素,90分是数据项B、某班级的学⽣成绩表是数据对象,90分是数据元素C、某班级的学⽣成绩表是数据对象,90分是数据项D、某班级的学⽣成绩表是数据元素,90分是数据元素4. *数据结构是指(A )。
A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义5. 数据在计算机存储器内表⽰时,物理地址与逻辑地址不相同,称之为(C )。
A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构6. 算法分析的⽬的是(C )A、找出数据的合理性B、研究算法中的输⼊和输出关系C、分析算法效率以求改进D、分析算法的易懂性和⽂档型性7. 算法分析的主要⽅法(A )。
2001年到2006年自考数据结构试题和答案2
全国2004年10月卷答案一、单项选择题DABAC CCBDA ABABD// 5.可以简单的计算,空域为3->7,总共5个,对长则为21 - 5 = 167.c//BDBABDABDABBDA123失败,比较3次BDBABDABDABBDA1失败,比较1次BDBABDABDABBDA12失败,比较2次BDBABDABDABBDA1失败,比较1次BDBABDABDABBDA123成功,比较3次共计10次10.dA/B/ | \C D F|E二、填空题16.(一组)运算17. 直接前驱18. SXSSXXSSXSSXXX19. 模式匹配20. 5n - 6N+2N-2+2N-4=5N-6// n阶5对角阵// 1 1 1 0 0 ............// 1 1 1 1 0 ............// 1 1 1 1 1 0 ..........// 0 1 1 1 1 1 0.........// 0 0 1 1 1 1 1 0 ......// ....0 1 1 1 1 1 0 ....// ......................// ......................21. 50// 63 < 100 < 127, 最下一层叶子数:100 - 63 = 37// 倒数第2层叶子数:32 - [ 37 / 2 ] = 13 []向上取整22. 径?23. 待排关键字(记录)?24. 有序的?25. ?// 一些概念题,因为没书,很久没接触了,可能不准确。
三、解答题略28划分后左边:(55) (28) (73) (91) (37) 右边:(64),(19),(82),(46)第一次Merge之后:(28,55)(73) (91) (37) 右边:(64),(19),(82),(46)第二次Merge之后:(28,55)(73,91) (37) 右边:(64),(19),(82),(46)第三次Merge之后:(28,55,73,91)(37) 右边:(64),(19),(82),(46)第四次Merge之后:(28,37,55,73,91) 右边:(64),(19),(82),(46)第五次Merge之后:(28,37,55,73,91) 右边:(19,64),(82), (46)所以.....28,37,55,73,91,19,64,82,46四、算法阅读题30.1) p = pre->next; 或 p = L->next; // p指向第一个结点2) p->next = Lc->next; // 数据大于c的p结点插入Lc链表表头3) p = pre->next; 或 p = p->next; // 下一个结点31.此题有误,... if ((i=!t)!=0) ... 应该是 ... if( ( i = !i ) != 0 ) ...1) 1,3,5,7,6,4,22) 堆栈S中的元素依次出栈,奇数次序的入栈T,偶数次序的入队Q32.图G的邻接矩阵不对称,因此,是有向图1) 52) 计算有向图G中的端点i(第i+1个端点)的度,包括出度和入度3) O(n)33. 此题明显有错误if( low > high )应为if( low < high )因为if(){...}里有while( low < high )1) -8, -3, -2, -1, 4, 2, 5, 7:-8 -3 2 -1 -2 4 5 72) 将数组R中的前n个数调整为所有负数在前,所有整数在后五、算法设计题34. 看原型,应该是要使用递归了,题目很傻地把解法都告诉我们了。
安徽大学数据结构期末考试题 (2)
安徽大学20 04 -20 05学年第2 学期《数据结构》期末考试试卷(A卷)一、单项选择(在备选答案中选出一个正确答案,并将其号码填在题后的括号内。
每题2分,共20分)01.堆是一种数据结构, ( ) 是堆.A、(10,50,80,30,60,20,15,18)B、(10,18,15,20,50,80,30,60)C、(10,15,18,50,80,30,60,20)D、(10,30,60,20,15,18,50,80)02.广义表有两个重要的基本操作,取列表表头Head(Ls) ,和取列表表尾Tail(Ls),请利用这两个操作取出Ls中原子f的运算是( ),已知广义表Ls=((a,b,c,d),(e,f,g,h)).A、Head(Tail(Ls))B、Tai(Head(Ls))C、. Head(Tail(Head(Tail(Ls))))D、Head(Tail(Tai(Head(Ls))))03.若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则他的后序序列是( )A、EFGHBCDB、FEGHDCBC、FEGBHDCD、EFBGCHD04.在下列常用内部排序方法中属于不稳定排序的是( )A、希尔排序,快速排序,简单选择排序,堆排序B、希尔排序,快速排序,2-路归并排序,堆排序C、直接插入排序,起泡排序, 希尔排序, 简单选择排序D、2-路归并排序,堆排序, 希尔排序, 起泡排序05.有一个具有n个顶点的连通图生成的最小生成树中,具有( )条边A、nB、n-1C、n+1D、2n-106. 下面的二叉树中,()不是平衡二叉树。
A B C D07.如下图给出由七个顶点组成的无向图,从顶点1出发,对它进行深度优先遍历得到的顶点序列是( )A、1354267 ①②B、1347625C、1534276 ③④⑦D、1247653⑤⑥.08. 将pascal语言的数组A[0..8,0..8]按行优先次序存储在起始地址为1000的连续的内存单元中,每个存储单元的长度为2,则元素A[7,3]的地址是( )A、1132B、1134C、1114D、111209.依次读入数据元素序列{a,b,c,d,e,f}进栈,每进一个元素机器可要求下一个元素进栈和出栈.如此进行,则栈空时弹出的元素构成的序列不可能出现( )A、{c,d,b,e,f,a}B、{d,c,e,b,f,a}C、{b,d,c,e,a,f}D、{b,e,d,a,c,f}10.从具有n 个结点的二叉排序树中查找一个元素时,在最坏情况下的时间复杂度为( )A、0(n)B、0(1)C、0(logn)D、O(n²)二、填空题(每空2分,共20分)1.对于双向链表,在两个结点之间插入一个新结点时需要修改的指针共有____个。
数据结构(第一、二、三组答案)
考试科目:数据结构第一组:一、编程题(每小题30分,共60分)(一)用标准C语言实现Hanoi塔问题#include <stdio.h>#include <stdlib.h>void move(int n,char x,char y,char z) {if (n==1) {printf("%c--->%c\n",x,z);}else {move(n-1,x,z,y);printf("%c--->%c\n",x,z);move(n-1,y,x,z);}}int main(){int n;scanf("%d",&n);move(n,'X','Y','Z');return 0;}(二)1.设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链表中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符。
2.设计在链式存储结构上交换二叉树中所有结点左右子树的算法。
二、解答题(20分)(一)已知一棵二叉树的先序序列是ABCDEFGHIJK,中序序列是CDBGFEAHJIK,请构造出该二叉树。
三、画图题(20分)(一)设有序顺序表中的元素依次为017, 094, 154, 170, 275,503, 509, 512, 553, 612, 677, 765, 897, 908。
试画出对其进行折半搜索时的判定树, 并计算搜索成功的平均搜索长度和搜索不成功的平均搜索长度。
第二组:一、编程题(每小题30分,共60分)(一)已知某哈希表的装载因子小于1,哈希函数H(key)为关键字(标识符)的第一个字母在字母表中的序号,处理冲突的方法为线性探测开放定址法。
试编写一个按第一个字母的顺序输出哈希表中所有关键字的算法。
(二)设顺序表L是一个递增有序表,试写一算法,将x插入L中,并使L仍是一个有序表。
数据结构考试题库(含参考答案) (2)
第1章绪论一、选择题1. 算法的计算量的大小称为计算的()。
【北京邮电大学2000 二、3 (20/8分)】A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于()【中科院计算所1998 二、1 (2分)】A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(1),它必须具备(2)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性【南京理工大学1999 一、1(2分)【武汉交通科技大学1996 一、1(4分)】4.一个算法应该是()。
【中山大学1998 二、1(2分)】A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C.5. 下面关于算法说法错误的是()【南京理工大学2000 一、1(1.5分)】A.算法最终必须由计算机程序实现B. 为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是()【南京理工大学2000 一、2 (1.5分)】(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为()两大类。
【武汉交通科技大学1996 一、4(2分)】A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是()。
【北方交通大学2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D. 栈9.以下数据结构中,哪一个是线性结构()?【北方交通大学2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下那一个术语与数据的存储结构无关?()【北方交通大学2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为()【北京工商大学2001 一、10(3分)】FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A.O(2n) B.O(n) C.O(n2) D.O (log2n)12.程序段FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中n为正整数,则最后一行的语句频度在最坏情况下是()A. O(n)B. O(nlogn)C. O(n3)D. O(n2) 【南京理工大学1998一、1(2分)】13.以下哪个数据结构不是多型数据类型()【中山大学1999 一、3(1分)】A.栈B.广义表C.有向图D.字符串14.以下数据结构中,()是非线性数据结构【中山大学1999 一、4】A.树B.字符串C.队D.栈15. 下列数据中,()是非线性数据结构。
《数据结构》试卷及答案2
广州大学2017-2018学年第二学期考试卷课程《数据结构》考试形式(闭卷,考试)物理与电子工程学院电子系电子061、062、063 专业学号姓名一、判断题(对打√,错打×。
每题1分,共15分)1、在单链表中,任何两个元素的存储位置之间都有固定的联系,因此可以从头结点进行查找任何一个元素。
( )2、线性表的线性存储结构优于链表存储结构。
( )3、完全二叉树的某结点若无左孩子,则必定是叶子结点。
( )4、无向图用邻接矩阵表示,图中的边数等于邻接矩阵元素之和的一半。
( )5、在图结构中,结点可以没有任何前趋和后继()。
6、在拓扑排序序列中,任意两个相继结点v i和v j都存在从v i到v j的路径。
( )7、结点数固定的二叉树中,完全二叉树具有最小路径长度( )。
8、中序线索树中,右线索若不为空,则一定指向其双亲结点( )。
9、有向图用邻接矩阵表示,容易实现求结点度数的操作( )。
10、二叉树是度最大为2的有序树( )。
11、按广度优先搜索遍历图时,与始点相邻的结点先于不与始点相邻的结点访问( )12、若有向图的邻接矩阵中对角线以下元素均为零,则该图的拓扑排序序列必定存在( )。
13、若有向图G中包含一个环,则G的结点间不存在拓扑排序( )。
14、图的拓扑排序序列是唯一的( )。
15、网络的最小代价生成树是惟一的()。
二、选择题(每题2分,共20分)1.在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2.常对数组进行的两种基本操作是( )。
A.建立与删除B.索引和修改C.查找和修改D.查找和索引3.下列结论中不正确的是( )。
A.按广度优先搜索遍历图时,与始点相邻的结点先于不与始点相邻的结点访问。
B.一个图按广度优先搜索法遍历的结果是唯一的。
C.无向图的邻接表表示法中,表中结点的数目是图中边的条数2倍。
数据结构试题及答案)
一、单选题(每题 2 分,共20分)1. 1.对一个算法的评价,不包括如下(B )方面的内容。
A.健壮性和可读性B.并行性C.正确性D.时空复杂度2. 2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行(A)。
A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3. 3.对线性表,在下列哪种情况下应当采用链表表示?( B )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4. 4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( C )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35. 5.AOV网是一种(D )。
A.有向图B.无向图C.无向无环图D.有向无环图6. 6.采用开放定址法处理散列表的冲突时,其平均查找长度(B )。
A.低于链接法处理冲突 B. 高于链接法处理冲突C.与链接法处理冲突相同D.高于二分查找7.7.若需要利用形参直接访问实参时,应将形参变量说明为(D )参数。
A.值B.函数C.指针D.引用8.8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的( A )。
A.行号B.列号C.元素值D.非零元素个数9.9.快速排序在最坏情况下的时间复杂度为(D )。
A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2)10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。
A. O(n)B. O(1)C. O(log2n)D. O(n2)二、二、运算题(每题 6 分,共24分)1. 1.数据结构是指数据及其相互之间的____联系__________。
数据结构考试题及答案详解
数据结构考试题及答案详解一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用哪种数据结构实现?A. 链表B. 数组C. 栈D. 队列答案:B2. 下列哪个是二叉树的遍历算法?A. 深度优先搜索B. 广度优先搜索C. 排序算法D. 查找算法答案:A3. 哈希表解决冲突最常用的方法是?A. 链接法B. 线性探测法C. 二次探测法D. 所有选项都是答案:D4. 栈的后进先出(LIFO)特性决定了它不能用于实现哪些数据结构?A. 队列B. 堆C. 树D. 图答案:A5. 快速排序算法的时间复杂度在最坏情况下是?A. O(n log n)B. O(n^2)C. O(n)D. O(1)答案:B二、简答题(每题10分,共30分)1. 什么是递归?请给出一个递归函数的例子。
答案:递归是一种在函数内部调用自身的编程技术。
递归函数通常有两个条件:一个基本情况(base case),用于停止递归调用;一个递归情况(recursive case),用于进行递归调用。
例如,计算阶乘的递归函数如下:```cint factorial(int n) {if (n == 0) return 1; // 基本情况return n * factorial(n - 1); // 递归情况}```2. 什么是图的深度优先搜索(DFS)?请简述其基本思想。
答案:深度优先搜索是一种遍历图的算法,它从一个顶点开始,沿着一条路径尽可能深地搜索,直到无法继续为止,然后回溯并沿着另一条路径继续搜索。
基本思想是使用一个栈来记录已访问的顶点,以避免重复访问。
3. 什么是平衡二叉搜索树?请列举至少两种常见的平衡二叉搜索树。
答案:平衡二叉搜索树是一种特殊的二叉搜索树,它保持树的高度尽可能低,以保证操作的效率。
常见的平衡二叉搜索树有AVL树和红黑树。
AVL树通过旋转操作保持平衡,红黑树通过颜色和旋转操作来保持平衡。
三、计算题(每题25分,共50分)1. 给定一个数组A,包含n个元素,请计算其归并排序的时间复杂度,并给出排序过程的一个示例。
电子科技大学22春“计算机应用技术”《数据结构》期末考试高频考点版(带答案)试卷号2
电子科技大学22春“计算机应用技术”《数据结构》期末考试高频考点版(带答案)一.综合考核(共50题)1.若一个算法中的语句频度之和为T(n)=3720n+4nlogn,则算法的时间复杂度为 O(n)。
()A.正确B.错误参考答案:B2.假设以S和X分别表示进栈和退栈操作,则对输入序列a,b,c,d,e进行一系列栈操作SSXSXSSXXX 之后,得到的输出序列为 a b b c c d d e d c 。
()A.正确B.错误参考答案:B3.下面的程序段的时间复杂度是多少?()A.O(n)B.O(m+n+1)C.O(m+n)D.O(m*n)参考答案:D4.在线性表的下列运算中,不改变数据元素之间结构关系的运算是()。
A、插入B、删除C、排序D、定位5.从顺序表中删除一个元素时,表中所有在被删元素之后的元素均需()。
A、前移一个位置B、后移一个位置C、不动D、视情况而定参考答案:A6.算法有以下几种特性()。
A、有穷性B、确定性C、可行性D、输入和输出参考答案:ABCD7.在目标串T[0...n-1]=″xwxxyxy″中,对模式串P[0...m-1]=″xy″进行子串定位操作的结果是()。
A、0B、2C、3D、5参考答案:C8.一个含有n个结点的完全二叉树,它的高度是「log2n」+1。
()T、对F、错参考答案:TA.正确B.错误参考答案:B10.已知在一棵度为3的树中,度为2的结点数为4,度为3的结点数为3,则该树中的叶子结点数为()。
A、5B、8C、11D、18参考答案:C11.假设按照12345的进栈顺序,下面哪些是可能的出栈顺序()。
A、12345B、54321C、43215D、14325参考答案:ABCD12.在文本编辑程序中查找某一特定单词在文本中出现的位置,可以利用串的定位操作。
()A、错误B、正确参考答案:B13.若线性表的插入和删除操作频繁地在表头或表尾位置进行,则更适宜采用的存储结构为()。
国家电网招聘考试计算机类专业知识(数据结构与算法)模拟试卷2(
国家电网招聘考试计算机类专业知识(数据结构与算法)模拟试卷2(题后含答案及解析)题型有:1. 单项选择题单项选择题1.采用顺序查找法查找长度为n的顺序表时,查找成功的平均查找长度为( )。
A.(n-1)/2B.(n+1)/2C.nD.n/2正确答案:B解析:在查找成功的前提下,查找的最好情况是查找的第一个元素即想要查找的元素,最坏情况是查找的最后一个元素即想要查找的元素,所以查找成功的平均查找长度是(n+1)/2。
2.在循环队列中用数组A[0..m-1]存放队列元素,其队头指针和队尾指针分别为front和rear,则当前队列中的元素个数是( )。
A.(front-rear+1)%mB.(rear-front+1)%mC.(front-rear+m)%mD.(rear-front+m)%m正确答案:D3.算法分析的目的是( )。
A.找出数据结构的合理性B.研究算法中输入和输出的关系C.分析算法的效率,以求改进D.分析算法的易懂性和文档性正确答案:C4.下列关于栈的叙述,正确的是( )。
A.只要确定了入栈序列,就可以确定出栈序列B.栈是一种操作受限的线性表,只允许在其两端进行操作C.采用非递归方式重写递归程序时,必须使用栈D.函数调用时,可以使用栈来保存必要的信息解析:确定了入栈序列无法确定出栈序列,因为各个元素出栈的时间是不确定的;栈是一种操作受限的线性表,只允许在其一端进行操作;采用非递归方式重写递归程序时,除了栈还可以使用循环结构算法。
5.若允许表达式中多种括号混合嵌套,则检查表达式中括号是否正确配对的算法,通常选用的辅助结构是( )。
A.栈B.线性表C.队列D.二叉排序树正确答案:A解析:由于栈具有先进后出的特点,因此选用辅助结构栈可以实现表达式中多种括号混合嵌套的配对。
例如,使用3个栈,就可以同时解决表达式中的“{”与“}”、“[”与“]”、“(”与“)”的配对问题。
6.设线性表的长度为15,采用冒泡排序,在最坏的情况下需要比较的次数为( )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构试卷(一)一、选择题(30分)1.设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为()。
(A) O(n)(B) O(nlog2n)(C) O(1)(D) O(n2)2.设一棵二叉树的深度为k,则该二叉树中最多有()个结点。
(A) 2k-1(B) 2k(C) 2k-1(D) 2k-13.设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为()。
(A) n(B) e(C) 2n(D) 2e4.在二叉排序树中插入一个结点的时间复杂度为()。
(A) O(1)(B) O(n)(C) O(log2n)(D) O(n2)5.设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有()条有向边。
(A) n(B) n-1(C) m(D) m-16.设一组初始记录关键字序列为(345,253,674,924,627),则用基数排序需要进行()趟的分配和回收才能使得初始关键字序列变成有序序列。
(A) 3(B) 4(C) 5(D) 87.设用链表作为栈的存储结构则退栈操作()。
(A) 必须判别栈是否为满(B) 必须判别栈是否为空(C) 判别栈元素的类型(D) 对栈不作任何判别8.下列四种排序中()的空间复杂度最大。
(A) 快速排序(B) 冒泡排序(C) 希尔排序(D) 堆9.设某二叉树中度数为0的结点数为N0,度数为1的结点数为N l,度数为2的结点数为N2,则下列等式成立的是()。
(A) N0=N1+1(B) N0=N l+N2(C) N0=N2+1(D) N0=2N1+l10.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过()。
(A) log2n+1(B) log2n-1(C) log2n(D) log2(n+1)二、填空题(42分)1.1.设有n个无序的记录关键字,则直接插入排序的时间复杂度为________,快速排序的平均时间复杂度为_________。
2.2.设指针变量p指向双向循环链表中的结点X,则删除结点X需要执行的语句序列为_________________________________________________________(设结点中的两个指针域分别为llink和rlink)。
3.3.根据初始关键字序列(19,22,01,38,10)建立的二叉排序树的高度为____________。
4.4.深度为k的完全二叉树中最少有____________个结点。
5.5.设初始记录关键字序列为(K1,K2,…,K n),则用筛选法思想建堆必须从第______个元素开始进行筛选。
6.6.设哈夫曼树中共有99个结点,则该树中有_________个叶子结点;若采用二叉链表作为存储结构,则该树中有_____个空指针域。
7.7.设有一个顺序循环队列中有M个存储单元,则该循环队列中最多能够存储________个队列元素;当前实际存储________________个队列元素(设头指针F指向当前队头元素的前一个位置,尾指针指向当前队尾元素的位置)。
8.8.设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表中_______个数据元素;删除第i个位置上的数据元素需要移动表中_______个元素。
9.9.设一组初始记录关键字序列为(20,18,22,16,30,19),则以20为中轴的一趟快速排序结果为______________________________。
10.10.设一组初始记录关键字序列为(20,18,22,16,30,19),则根据这些初始关键字序列建成的初始堆为________________________。
11.11.设某无向图G中有n个顶点,用邻接矩阵A作为该图的存储结构,则顶点i和顶点j互为邻接点的条件是______________________。
12.12.设无向图对应的邻接矩阵为A,则A中第i上非0元素的个数_________第i列上非0元素的个数(填等于,大于或小于)。
13.13.设前序遍历某二叉树的序列为ABCD,中序遍历该二叉树的序列为BADC,则后序遍历该二叉树的序列为_____________。
14.14.设散列函数H(k)=k mod p,解决冲突的方法为链地址法。
要求在下列算法划线处填上正确的语句完成在散列表hashtalbe中查找关键字值等于k的结点,成功时返回指向关键字的指针,不成功时返回标志0。
typedef struct node {int key; struct node *next;} lklist;void createlkhash(lklist *hashtable[ ]){int i,k; lklist *s;for(i=0;i<m;i++)_____________________;for(i=0;i<n;i++){s=(lklist *)malloc(sizeof(lklist)); s->key=a[i];k=a[i] % p; s->next=hashtable[k];_______________________;}}三、算法设计题(28分)1.1.设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链表中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符。
1. 2.设计在链式存储结构上交换二叉树中所有结点左右子树的算法。
2. 3.在链式存储结构上建立一棵二叉排序树。
数据结构试卷(一)参考答案一、选择题1.C2.D3.D4.B5.C6.A7.B8.A9.C10.A二、填空题1. 1.O(n2),O(nlog2n)2. 2.p>llink->rlink=p->rlink; p->rlink->llink=p->rlink3. 3.34. 4.2k-15. 5.n/26. 6.50,517.7.m-1,(R-F+M)%M8.8.n+1-i,n-i9.9.(19,18,16,20,30,22)10.10.(16,18,19,20,32,22)11.11.A[i][j]=112.12.等于13.13.BDCA14.14.hashtable[i]=0,hashtable[k]=s三、算法设计题1. 1.设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链表中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符。
typedef char datatype;typedef struct node {datatype data; struct node *next;}lklist;void split(lklist *head,lklist *&ha,lklist *&hb,lklist *&hc){lklist *p; ha=0,hb=0,hc=0;for(p=head;p!=0;p=head){head=p->next; p->next=0;if (p->data>='A' && p->data<='Z') {p->next=ha; ha=p;}else if (p->data>='0' && p->data<='9') {p->next=hb; hb=p;} else {p->next=hc; hc=p;}}}2. 2.设计在链式存储结构上交换二叉树中所有结点左右子树的算法。
typedef struct node {int data; struct node *lchild,*rchild;} bitree;void swapbitree(bitree *bt){bitree *p;if(bt==0) return;swapbitree(bt->lchild); swapbitree(bt->rchild);p=bt->lchild; bt->lchild=bt->rchild; bt->rchild=p;}3. 3.在链式存储结构上建立一棵二叉排序树。
#define n 10typedef struct node{int key; struct node *lchild,*rchild;}bitree;void bstinsert(bitree *&bt,int key){if (bt==0){bt=(bitree *)malloc(sizeof(bitree)); bt->key=key;bt->lchild=bt->rchild=0;}else if (bt->key>key) bstinsert(bt->lchild,key); else bstinsert(bt->rchild,key);}void createbsttree(bitree *&bt){int i;for(i=1;i<=n;i++) bstinsert(bt,random(100));}数据结构试卷(二)一、选择题(30分)1.数据的最小单位是()。
(A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量2.设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为()。
(A) 40,50,20,95(B) 15,40,60,20(C) 15,20,40,45(D) 45,40,15,203.设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为()。
(A) 15,25,35,50,20,40,80,85,36,70(B) 15,25,35,50,80,20,85,40,70,36(C) 15,25,35,50,80,85,20,36,40,70(D) 15,25,35,50,80,20,36,40,70,854.函数substr(“DATASTRUCTURE”,5,9)的返回值为()。
(A) “STRUCTURE”(B) “DATA”(C) “ASTRUCTUR”(D) “DATASTRUCTURE”5.设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为()。
(A) O(log2n)(B) O(1)(C) O(n2)(D) O(n)6.设一棵m叉树中度数为0的结点数为N0,度数为1的结点数为N l,……,度数为m的结点数为Nm,则N0=()。