数据结构和程序设计真题

合集下载

2024年广西科技大学考研真题817数据结构与程序设计

2024年广西科技大学考研真题817数据结构与程序设计

广西科技大学 2024 年硕士研究生招生考试初试专业课试卷考试科目代码:817 考试科目名称:数据结构与程序设计考试时间:180分钟(本试题共 6 页)一、判断题(每小题1分,共10分)1.C语言中的输入语句只能用scanf实现。

2.for语句只能用于循环次数已经确定的情况下。

3.逻辑运算符两侧运算对象的数据类型只能是整型或字符类型。

4.局部变量只对main函数起作用,而全局变量对所有函数起作用。

5.若有定义,int k=2, *ptr1, *ptr2; 且ptr1和ptr2均已指向k,则ptr2=k;是正确的语句。

6.已知i=0,j=1,语句if(j++||++i);执行后i、j的值分别是1、2。

7.char s[5]="ABCDE"能够正确进行字符串赋值。

8.若有定义,int *point, a=4; point =&a;,则point、&a、*&point都代表地址。

9.在C语言中,二维数组元素在内存中的存放顺序是按行顺序存放。

10.不能用"r"方式打开一个并不存在的文本文件。

二、单项选择题(每小题1.5分,共30分)1.若C语言中一个int型数据在内存中占用两个字节,则int型数据的取值范围为____。

A.-128~127 B.-32768~32767C.0~65536 D.0~21474836472.有以下程序片段int k=5;while(k=1) k--;执行此程序片段,则描述正确的是____。

A.while循环执行4次B.循环体执行一次C.循环体一次也不执行D.死循环3.有如下函数调用语句fuc( rec1, rec2+rec3, (rec4, rec5) );该函数调用语句中,含有的实参个数是____。

A.3 B.4 C.5 D.有语法错误4.程序的三种基本结构是____。

A.顺序结构,循环结构,递归结构B.顺序结构,循环结构,选择结构C.选择结构,循环结构,递归结构D.顺序结构,选择结构,递归结构5.C语言中主函数的个数是____。

数据结构和C++程序设计_题库

数据结构和C++程序设计_题库

《数据结构》Part1一.选择1. 组成数据的基本单位是()A)数据项B)数据类型C)数据元素D)数据变量2.算法分析的目的是()A)找出数据结构的合理性B)研究算法的输入/输出关系C)分析算法的效率以求改进D)分析算法的易读性3.在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是()A)O(1) B)0(n) C)O(n^2) D)O(nlog2n)4.若线性表采用顺序存储结构,每个元素占用4个存储单元,第一个元素的存储地址为100,则第12个元素的存储地址是()A)112 B)144 C)148 D)4125.下面关于线性表的叙述中,错误的是()A)顺序表使用一维数组实现的线性表B)顺序表必须占用一片连续的存储单元.C)顺序表的空间利用率高于链表D)在单链表中,每个结点只有一个链域. 6.在需要经常查找结点的前驱与后继的情况下,使用()比较合适A)单链表B)双链表C)顺序表D)循环链表7.队列通常采用的两种存储结构是()A)顺序存储结构和链式存储结构B)散列方式和索引方式C)链表存储结构和线性存储结构D)线性存储结构和非线性存储结构8.在一个单链表中,若删除p所指结点的后继结点,则执行()A)p->next=p->next->next;B)p=p->next;p->nex=p->next->next;C)p->next=p->next;D)p=p->next->next;9.若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间A)单链表B)仅有头指针的单循环链表C)双链表D)仅有尾指针的单循环链表10.按二叉树的定义,具有三个结点的二元树共有()种形态。

A)3 B)4 C)5 D)611.任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序()A)发生改变B)不发生改变C)不能确定D)以上都不对12.深度为5的二叉树至多有()个结点A)16 B)32 C)31 D)1013.在一棵度为3的树中,度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,那么度为0的结点数为()个。

程序设计与数据结构练习题 附答案

程序设计与数据结构练习题 附答案

一、单项选择题1.有下列程序段落:int i,a[5];for(i=0;i<5;i++)scanf(“%d”,&a[i]);若要使数组元素的值分别为1,2,3,4,5,应从键盘输入(B)。

A.1,2,3,4,5↙B.1 2 3 4 5↙C.12345↙D.1;2;3;4;5↙2.数组名作为函数参数进行传递时,形参获得的是(D)。

A.该数组第一个元素的值B.该数组所有元素的值C.该数组所有元素的地址D.该数组的首地址3.设有如下宏定义:#define A 3+2#define B A*A则表达式“B*B”的值为( A )。

A.23B.5 C.25D.6254.在下列说明中,结构类型变量x 所占用内存字节数为(D)。

struct exp{ int i;float j;double k;}x;A.8个B.7个C.14个D.随计算机而定5.设有定义:int k=3,*p=&k; 则表达式*p的值是(D)。

A.1 B.0 C.2 D.36.下列程序的输出结果为(A)。

main(){ int i=3,b;b=(i--)+(i--);printf(“%d”,b);}A.6 B.2 C.3 D.47.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是(D)。

A.c=b=a B. (a=c)||(b=c) C. a=c=b D. (a=c)&&(b=c)8.下列叙述不正确的是( A )。

A.函数定义可以嵌套B.宏定义可以嵌套C.函数调用可以嵌套D.循环结构可以嵌套9.设char *p=“abcde”,则printf(“%s”, p ) 的输出结果为( D )。

A.c B.cde C.b D.abcde10.p1,p2 为指向浮点的指针变量,下列运算没有意义的是(D)。

A.*p1-*p2 B.p1++ C.*p1+*p2 D.p1+p211.设有int i=010,j=10; 则printf( “%d,%d\n”,++i,j--);的输出是(B)。

上海海事大学2018年《828数据结构及程序设计》考研专业课真题试卷

上海海事大学2018年《828数据结构及程序设计》考研专业课真题试卷

2018年上海海事大学攻读硕士学位研究生入学考试
试题
(重要提示:答案必须做在答题纸上,做在试题上不给分)考试科目代码828 考试科目名称数据结构及程序设计一.判断题(本题10分,每小题1分)
1.线性的数据结构可以顺序存储,也可以链接存储。

非线性的数据结构只能链接存储。

2.单链表从任何一个结点出发,都能访问到所有结点。

3.单链表形式的队列,头指针F指向队列的第一个结点,尾指针R指向队列的最后一个结点。

4.若在采用链式存储结构线性表中,元素按值有序,则该线性表可以采用折半查找法查找元素。

5.一个栈的输入序列为1, 2, 3, …, n,其输出序列的第二个元素为n的输出序列的个数有n-1种。

6.设串S的长度为n,则S的子串个数为n(n+1)/2。

7.若一个广义表的表头为空表,则此广义表亦为空表。

8.二叉树中除叶节点外,任一节点x,其左子树根节点的值小于该节点(x)的值,其右子树根节点的值大于该节点(x)的值,则此二叉树一定是二叉排序树。

9.网络的最小代价生成树是唯一的。

10.(99, 86, 46, 70, 34, 39, 45, 58, 66, 10 )是堆。

二.填空题(本题20分,每空2分)
1.一个栈的输入序列是:1、2、3,则不可能的栈输出序列是⑴。

- 2018试题1/6 -。

北航数据结构与程序设计真题2013年北航991真题及答案

北航数据结构与程序设计真题2013年北航991真题及答案

2013年''数据结构与C程序设计〃(代码991)试题一、单项选择题(本题共20分,每小题各2分)1.对于长度为n的线性表,建立其对应的収链表的时间复朵度为()。

A.0(1): B・ O(log2n):・ O(n): D・ O(n2)n2.一般情况下,在一个双向链表中插入一个新的链结点,()。

A.需耍修改4个抬针域内的指针:B・需要修改3个指针域内的抬针:C.需要修改2个抬针域内的抬针:D.只需要修改1个指针域内的抬针。

3.假设用单个字母表示中缀表达式中的一个运算数(或称运算对彖).并利用堆栈产生中缀表达式对应的后缀表达式。

对于中缀表达式A+B^C/D-E),十从左至右扫描到运算数E时,堆栈中的运算符依次是()。

(注:不包含表达式的分界符)A.+*/-:B. +*(/-: C・ +*-:・ +*(-o4.若某二叉排序树的前序遍历序列为50,20,40,30,80,60,70,则后序遍历序列为()。

A. 30,40,20,50,70,60,80:B. 30,40,20,70,60,80,50:C. 70,60,80,50,30,40,20:D. 70,60,80,30,40,20,50.5.分别以6, 3, 8, 12, 5, 7对应叶结点的权值构造的哈夫曼(Huffman)树的深度为()。

A. 6: B・ 5: C・ 4: D・ 3。

&下列关于图的叙述中,错误的是()0A.根据图的定义,图中至少有一个顶点:B.根据图的定义.图中至少有一个顶点和一条边(弧):C.具有n个顶点的无向图最多有n&#61620;(n-l)/2条边:D.具有n个顶点的有向图最多有n&#61620;(n-l)条边(弧)。

7.若在有向图G的拓扑序列中.顶点W在顶点vj之前,则下列4种情形中不可能岀现的是()。

A.G 中有弧vvi,vj>:B.G 中没有3ft<vi r vj>;c. G中有一条从顶点W到顶点vj的路径:D・G中有一条从顶点vj到顶点vi的路径。

程序设计与数据结构与算法专升本试题精选与解析

程序设计与数据结构与算法专升本试题精选与解析

程序设计与数据结构与算法专升本试题精选与解析一、选择题1. 下列不能直接在代码中定义的数据结构是:A. 数组B. 栈C. 队列D. 字符串答案:D解析:字符串是一种抽象数据类型,不能直接在代码中定义,而需要通过现有的数据结构(如数组)来表示和操作。

2. 在二叉搜索树中,某节点的左子树的所有节点值均小于该节点的值,右子树的所有节点值均大于该节点的值。

下列哪个操作时间复杂度最坏情况下为O(n)?A. 查找指定节点B. 插入新节点C. 删除指定节点D. 中序遍历答案:C解析:删除指定节点时,需要先找到指定节点,时间复杂度为O(logn),然后需要调整二叉搜索树的结构,最坏情况下需要遍历整棵树,时间复杂度为O(n)。

3. 下列排序算法中,不稳定的是:A. 冒泡排序B. 插入排序C. 快速排序D. 归并排序答案:C解析:快速排序在每次分割时选择一个基准元素,并将小于基准元素的元素放在左侧,大于基准元素的元素放在右侧,这可能改变相等元素的相对顺序,因此是不稳定的排序算法。

二、填空题1. 以下数据结构中,能够快速查找最大值和最小值的是_______________。

答案:平衡二叉搜索树解析:平衡二叉搜索树(如AVL树、红黑树)可以保持树的平衡性,从而能够在O(logn)的时间内查找最大值和最小值。

2. 在树的遍历中,先序遍历的访问顺序是_______________。

答案:根节点 -> 左子树 -> 右子树解析:先序遍历先访问根节点,然后先序遍历左子树,最后先序遍历右子树。

三、简答题1. 请简述动态规划算法的基本思想和步骤。

答案:动态规划算法的基本思想是将原问题分解为相互重叠的子问题,先求解子问题,再逐步解决更大的问题,最终得到原问题的解。

动态规划算法的基本步骤为:定义状态,构建状态转移方程,计算最优解。

2. 请简述堆排序算法的基本思想和步骤。

答案:堆排序算法的基本思想是通过构建最大堆或最小堆来实现排序。

上海海事大学828数据结构及程序设计2017年考研初试真题

上海海事大学828数据结构及程序设计2017年考研初试真题

2017年上海海事大学攻读硕士学位研究生入学考试试题(重要提示:答案必须做在答题纸上,做在试题上不给分)
考试科目代码828 考试科目名称数据结构及程序设计
一.判断题(本题10分,每小题1分)
1.链式栈与顺序栈相比,一个明显的优点是通常不会出现栈满的情况。

2.能够在链式存储的有序表上进行折半查找,其时间复杂度与在顺序存储的有序表上相同。

3.使用三元组表示稀疏矩阵中的非零元素能节省存储空间。

4.任何一棵二叉树的叶结点在先序、中序、后序三种遍历中的相对次序是相同的。

5.数据结构的抽象操作的定义与具体实现有关。

6.对一个有向图进行拓扑排序,一定可以将图的所有顶点按其关键码大小排列到一个拓扑有序的序列中。

7.如果无向图中每个顶点的度都大于等于2,则该图中必有回路。

8.两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。

9.若让元素1、2、3依次进栈,则出栈次序1、3、2是不可能出现的情况。

10.对平衡二叉树进行中序遍历,可得到结点的有序排列。

二.填空题(本题20分,每空2分)
1.下面程序的功能是实现冒泡排序算法,请在下划线处填上正确的语句。

void bubble(int r[n]) {
for ( i=1; i<=n-1; i++) {
- 2017试题1/6 -。

数据结构与C语言程序设计试题及答案

数据结构与C语言程序设计试题及答案
5.已知模式匹配的KMP算法中模式串t=’adabbadada’,其next函数的值为0112112343。
6.在置换-选择排序中,假设工作区的容量为w,若不计输入、输出的时间,则对n个记录的文件而言,生成所有初始归并段所需时间为O(n log w)。
三.简答题(6’5)
1.有n个不同的英文单词,它们的长度相等,均为m,若n>>50,m<5,试问采用什么排序方法时间复杂度最佳?为什么?
采用基数排序方法最佳。
因单词长度相等,而只有26个字母组成,符合基数排序的条件。
因m<<n,故时间复杂性由O(m(n+rm))变成O(n)。
2.对于一个栈,给出输入序列A,B,C,试给出全部可能的输出序列。若输入序列的长度为n,则可能的输出序列有多少?
ABC,ACB,BAC,BCA,CBA
C2nn/(n+1)
()10、任何有向图的顶点都可以按拓扑序排序。
二.填空题(2’6)
1.假设用于通信的电文由8个字母组成,其频率分别为0.07,0.19,0.02,0.06, 0.32,0.03,0.21,0.10,为这8个字母设计哈夫曼编码,其中编码长度最大的字母的编码是5位。
2.已知二叉树按中序遍历所得到的结点序列为DCBGEAHFIJK,按后序遍历所得到的结点序列为DCEGBFHKJIA,按先序遍历所得到的结点序列为ABCDGEIHFJK。
O(n log n)
四.程序设计题(38’)
1.假设有两个集合A和B,均以元素值递增有序排列的带头结点的单链表作为存储结构。请编写算法求C=AB,要求C按元素值递增有序排列,并要求利用原表(即表A和表B)的结点空间存放表C。(12’)
void Join(LinkList &la , LinkList &lb , LinkList &lc)

数据结构与算法设计与分析考核试卷

数据结构与算法设计与分析考核试卷
答案:______
8.在冒泡排序中,每一趟排序都能确定一个元素的最终位置。()
答案:______
9. Prim算法和Kruskal算法都可以用来求解最小生成树问题,但Prim算法总是从某一顶点开始,而Kruskal算法总是从某一权值最小的边开始。()
答案:______
10.在一个递归算法中,如果递归调用不是算法的最后一个操作,那么这种递归称为尾递归。()
B.邻接表适合表示稀疏图
C.邻接多重表适合表示无向图
D.邻接表和邻接多重表适合表示有向图
14.以下哪些算法属于分治算法?()
A.快速排序
B.归并排序
C.二分查找
D.动态规划
15.以下哪些情况下,动态规划比贪心算法更适合解决问题?()
A.存在重叠子问题
B.问题具有最优子结构
C.需要考虑所有可能的选择
D.问题可以通过局部最优达到全局最优
C.插入一个节点
D.查找某个节点
5.以下哪些算法可以用于解决最小生成树问题?()
A. Kruskal算法
B. Prim算法
C. Dijkstra算法
D. Bellman-Ford算法
6.以下哪些数据结构可以用来实现堆?()
A.数组
B.链表
C.栈
D.队列
7.关于图的深度优先遍历和广度优先遍历,以下哪些说法是正确的?()
________________________________
2.动态规划算法通常用于解决最优化问题,请阐述动态规划算法的三个基本要素,并给出一个动态规划问题的实例。
________________________________
________________________________

数据结构与算法设计试卷

数据结构与算法设计试卷

数据结构与算法设计试卷(答案见尾页)一、选择题1. 数据结构中,下列哪种数据结构的插入和删除操作时间复杂度最低?A. 栈B. 队列C. 数组D. 链表2. 在二叉树的遍历方法中,哪种方法可以访问所有节点且时间复杂度为O(n)?A. 前序遍历B. 中序遍历C. 后序遍历D. 层次遍历3. 常用的排序算法中,哪种算法是基于比较的排序算法,并且时间复杂度为O(n log n)?A. 冒泡排序B. 选择排序C. 插入排序D. 归并排序4. 在图的存储结构中,邻接矩阵适合表示哪种类型的图?A. 稀疏图B. 密集图C. 有向无环图D. 无向无环图5. 动态规划算法用于解决哪种类型的问题?A. 数值计算问题B. 字符串匹配问题C. 图论问题D. 机器学习问题6. 在最短路径问题中,Dijkstra算法和Floyd算法分别适用于哪种类型的图?A. 有权图和无权图B. 无权图和有权图C. 有向图和无向图D. 无向图和有权图7. 快速排序算法中,基准元素的选择对算法性能有何影响?A. 基准元素的选择不影响算法性能B. 基准元素选择不当会导致算法性能下降C. 基准元素选择得当可以提高算法性能D. 基准元素的选择与算法性能无关8. 在链表中,单向链表的每个节点包含哪些部分?A. 数据域和指针域B. 数据域和指针头C. 数据域和指针尾D. 数据域和指针尾9. 在栈的实现中,后进先出(LIFO)原则是如何体现的?A. 先进入栈的元素总是最先被移除B. 先进入栈的元素总是最后被移除C. 后进入栈的元素总是最先被移除D. 后进入栈的元素总是最后被移除10. 哈希表(Hash Table)的主要优点是什么?A. 查找速度快,插入和删除操作较慢B. 查找速度较慢,插入和删除操作较快C. 查找速度较快,插入和删除操作也较快D. 查找速度较慢,插入和删除操作也较慢11. 在最坏情况下,下列哪种排序算法的时间复杂度为O(n^)?A. 冒泡排序B. 选择排序C. 插入排序D. 归并排序12. 在二叉树的遍历方法中,先序遍历的特点是?A. 先访问根节点,然后遍历左子树,最后遍历右子树B. 先访问左子树,然后访问根节点,最后遍历右子树C. 先访问左子树,然后访问右子树,最后访问根节点D. 先访问右子树,然后访问左子树,最后访问根节点13. 常用的查找算法中,哈希表的查找效率最高,其平均查找时间复杂度为?A. O(1)B. O(log n)C. O(n)D. O(n log n)14. 下列哪种数据结构适用于表示稀疏线性表?A. 数组B. 链表C. 栈D. 队列15. 最短路径问题在图论中的研究内容是?A. 路径长度B. 路径上的节点序列C. 最短路径的长度及路径上的节点序列D. 最短路径的权重16. 快速排序算法是基于什么思想进行递归划分的?A. 分治法B. 动态规划C. 贪心算法D. 回溯算法17. 在图的遍历算法中,普里姆算法用于寻找?A. 所有顶点的最短路径B. 两个顶点之间的最短路径C. 一棵树的中序遍历D. 一棵树的前序遍历18. 下列哪种数据结构可以实现队列的先进先出(FIFO)特性?A. 栈B. 队列C. 数组D. 链表19. 在深度优先搜索算法中,哪种策略用于访问所有可能的路径?A. 沿着边遍历B. 沿着对角线遍历C. 沿着某一特定方向遍历D. 沿着任意方向遍历20. 在图的遍历算法中,普里姆算法用于求解什么问题?A. 最小生成树B. 最短路径C. 连通性D. 网络流21. 哈希表的冲突解决策略中,链地址法适用于哪种情况?A. 哈希函数值分布均匀B. 哈希函数值分布不均匀C. 存储的元素数量较大D. 存储的元素数量较小22. 在快速排序算法中,基准元素的选择对算法性能有何影响?A. 基准元素选择不合适会导致排序效率降低B. 基准元素选择不合适会导致排序效率提高C. 基准元素选择对算法性能没有影响D. 基准元素选择与算法性能无关23. 在二叉树的遍历算法中,先序遍历、中序遍历和后序遍历分别适用于哪些类型的树?A. 充分不平衡的二叉树B. 充分平衡的二叉树C. 不充分平衡的二叉树D. 完全不平衡的二叉树24. 在贪心算法中,贪心选择性质如何帮助求解问题?A. 贪心选择性质使得每次选择都能立即带来全局最优解B. 贪心选择性质使得每次选择都能减少后续问题的规模C. 贪心选择性质使得每次选择都能增加后续问题的规模D. 贪心选择性质使得每次选择都能保持问题的原有规模25. 在动态规划算法中,状态转移方程如何描述问题的解决过程?A. 状态转移方程描述了问题状态之间的转移过程B. 状态转移方程描述了问题状态之间的变换过程C. 状态转移方程描述了问题状态之间的依赖关系D. 状态转移方程描述了问题状态之间的组合关系26. 在下列哪种数据结构中,元素之间的逻辑关系可以通过指针直接访问?A. 数组B. 链表C. 栈D. 队列27. 下列哪种排序算法的平均时间复杂度为O(n^)?A. 快速排序B. 归并排序C. 堆排序D. 插入排序28. 在图论中,表示图中节点间有向边的图形是?A. 无向图B. 有向图C. 网络图D. 树29. 在树的遍历算法中,先序遍历、中序遍历和后序遍历分别指的是什么?A. 先访问根节点,再遍历左子树,最后遍历右子树B. 先访问左子树,再访问根节点,最后遍历右子树C. 先访问左子树,再遍历右子树,最后访问根节点D. 先访问根节点,再遍历右子树,最后遍历左子树30. 在图的存储结构中,邻接矩阵和邻接表分别适用于哪种情况?A. 小型图和大中型图B. 大中型图和小型图C. 都适用于大型图D. 都适用于小型图31. 在动态规划算法中,解决最短路径问题常用的算法是?A. 贝尔曼-福特算法B. 弗洛伊德-沃沙尔算法C. 克鲁斯卡尔算法D. 普里姆算法32. 在贪心算法中,贪心选择性质是指什么?A. 每一步都选择局部最优解,整个问题就最优B. 每一步都选择全局最优解,整个问题就最优C. 每一步都选择当前最优解,整个问题就最优D. 每一步都选择历史最优解,整个问题就最优33. 在搜索算法中,广度优先搜索(BFS)和深度优先搜索(DFS)有何不同?A. BFS从根节点开始,逐层扩展;DFS从任意节点开始,深入探索B. BFS从任意节点开始,逐层扩展;DFS从根节点开始,深入探索C. BFS只搜索浅层节点,DFS可能搜索深层的叶子节点D. BFS只搜索浅层节点,DFS可能搜索深层的叶子节点34. 在图论中,强连通分量是指什么?A. 图中任意两个顶点之间都有路径相连B. 图中任意三个顶点之间都有路径相连C. 图中存在一个顶点集合,使得每个顶点都与另一个顶点直接相连D. 图中存在一个顶点集合,使得每个顶点都与另一个顶点循环相连35. 在下列哪种数据结构中,元素之间的关系可以通过指针直接访问?A. 数组B. 链表C. 栈D. 队列36. 在排序算法中,稳定性意味着什么?A. 相同值的元素在排序后相对顺序不变B. 不相邻的元素在排序后相对顺序不变C. 相邻的元素在排序后相对顺序不变D. 所有元素的相对顺序都不变37. 下列哪种排序算法是递归的?A. 冒泡排序B. 选择排序C. 插入排序D. 归并排序38. 在图的存储结构中,邻接矩阵更适合表示哪种类型的图?A. 小型图B. 大型图C. 稀疏图D. 密集图二、问答题1. 什么是递归?请举例说明递归在计算机科学中的应用。

天津大学数据结构与程序设计考研真题试题2014—2018年

天津大学数据结构与程序设计考研真题试题2014—2018年

输出:对于每组输入,如果 s 是 t 的子串,则输出”Yes”,否则输出”No”。
输入样例:
2
sequence
subsequence
person
compression
输出样例:
Yes
No
考试科目名称:数据结构与程序设计
考试科目编号:901 共5页
一、实作题(每题 10 分,共 50 分) 1.如果一棵树用 n1 个度为 1 的节点,n2 个度为 2 的节点,...,nm 个度为 m 的节点,则该树共有多少个叶子节 点?(给出计算公式和结果)
二、算法设计题(18 分) 由二叉树的前序遍历和中序遍历序列能确定唯一的一棵二叉树,用 C 语言或者 C++实现由已知某二叉树的前序遍 历序列和中序遍历序列,生成一棵二叉链表表示的二叉树,并打印出后序遍历序列的算法。(算法要求有类型定 义,且必须有主函数)
考试科目名称:数据结构与程序设计
三、读程序,写结果。(每题 7 分,共 42 分) 1. #include <iostream>
4.已知一棵二叉树的中序遍历(或中根)结点序列为 DGBAECHIF,后序遍历结点为 GDBEIHFCA。 (1)试画出该二叉树。 (2)试画出该二叉树的中序线索树; (3)试画出该二叉树对应的森林。
5.已知一个有向图如图所示。
(1)给出该图的邻接表表示; (2)给出拓扑排序有序序列的全排序; (3)以 V1 为源点,V8 为终点,给出关键路径。
return 1; else
return 0; } void funb(int x, int &y) {
for (int i = 1; i < x; i++) if (funa(i)) y += i;

河南师范大学846数据结构与C程序设计

河南师范大学846数据结构与C程序设计

来源网络,造福学生———————欢迎下载,祝您学习进步,成绩提升———————2018年攻读硕士学位研究生入学考试试题科目代码与名称:846数据结构与C程序设计适用专业或方向:计算机科学与技术(各方向)考试时间:3小时满分:150分试题编号:B(必须在答题纸上答题,在试卷上答题无效,答题纸可向监考老师索要)第一部分数据结构(80分)B卷一、单项选择题(20个选题,每选题2分,共40分)(备注:答题时每连续的5个为一组,组与组之间要留有空隙,例如,ACCCD ACDAC)1.从逻辑结构来说,栈属于OA.树形结构B.散列表结构C.线性结构D.图状结构2.程序段for (i=0,k=0; i<100; i++)for (j=0; j<10000; j++) k++;的时间复杂度是。

A.0(1)B. 0(n*m)C. 0(n+m)D. 0(Max(n, m))3.若线性表釆用顺序存储结构,则在删除一个元素时需要移动的元素的次数与有关。

A.首地址B.元素的值C.线性表的有序性D.删除位置4.在一个带头结点的表长为5的循环单链表中,若其头指针为L,则在它的第一个元素结前插入S所指结点,则执行OA.s->next=L->next; L->next=s;B. L->next=s-〉next-〉next;C. s->next=L->next~>next; L~>next=sD. s->next=L-〉next; L->next=L;5.队列操作的特征是oA.先进先出B.先进后出C.插入在队头D.删除的是队尾6.在递归程序的执行过程中要用到。

A.栈B.循环结构C.顺序结构D.队列第1页,共7页7.用x表示入栈操作,用s表示出栈操作,若栈的初始状态为空,则下面—合法的操作序列。

A. xssssxxxB. xssxxsxxC. XXSXSSXD. SSSXXXXSSXX第2页,共7页第3页,共7页D. 19, 78, 32, 52, 12, 44, 66 .是错误的。

数据结构程序设计题目共29题

数据结构程序设计题目共29题

目录题目1:设计一元多项式简单计算 (1)题目2:链表应用1 (1)题目3:链表应用2 (1)题目4:通讯录 (2)题目5:停车场管理系统................................................ 错误!未定义书签。

题目6:约瑟夫环 (3)题目7:运动会分数统计 (3)题目8:文学研究助手问题 (3)题目9:银行业务模拟与离散事件模拟 (4)题目10:学生信息管理系统任务(用顺序表/链表)....... 错误!未定义书签。

题目11:文章编辑功能 ................................................. 错误!未定义书签。

题目12:实验室管理..................................................... 错误!未定义书签。

题目13:二叉树的基本操作(建立、求二叉树树深度、遍历).. (4)题目14:纸牌游戏任务 (5)题目15:算术表达式求值 (5)题目16:内部排序算法比较 (5)题目17:哈夫曼树的构造和哈夫曼编码/译码 (6)题目18:构造可以使n个城市连接的最小生成树 (7)题目19:交通咨询系统中的最短路径 (7)题目20:集合的交、并、差运算 ................................... 错误!未定义书签。

题目21:长整数四则运算 (7)题目22:机订票系统..................................................... 错误!未定义书签。

题目23:图书管理系统 (8)题目24:哈希表应用 (8)题目25:模拟旅馆管理系统的一个功能——床位的分配与回收 (9)题目26:地图着色问题 (9)题目27:俄罗斯套娃问题 (10)题目28:扫雷 (11)题目29:用C语言设计一个日历系统 (11)题目1:设计一元多项式计算【任务要求】(1)能够按照指数降序排列建立并输出多项式;(2)能够完成两个多项式的相加、相减,并将结果输入;实现提示:可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。

十套数据结构试题及答案

十套数据结构试题及答案

数据构造试卷〔一〕一、单项选择题〔每题 2 分,共20分〕1.栈和队列的共同特点是( a )。

A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进展插入运算时( d ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据构造中哪一个是非线性构造?( d )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。

cA.688 B.678 C.692 D.6965.树最适合用来表示( c )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( d ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.假设有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进展二分查找,那么查找A[3]的比拟序列的下标依次为( c d)A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进展快速排序,所需要的辅助存储空间大致为 cA. O〔1〕B. O〔n〕C. O〔1og2n〕D. O〔n2〕9.对于线性表〔7,34,55,25,64,46,20,10〕进展散列存储时,假设选用H〔K〕=K %9作为散列函数,那么散列地址为1的元素有〔 c d〕个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( a )条边才能确保是一个连通图。

二、填空题〔每空1分,共26分〕1.通常从四个方面评价算法的质量:____时间正确性_____、____占用内存_易读性____、____复杂度__强壮性___和_____准确度_ 高效率___。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
obj1.f();
A obj2(15);
obj2.f();
obj1.f();
return 0;
}
}
a=10
b=10
a=15
b=25
a=10
b=25
6.#include<iostream>
Using namespace std
ClassA{
Private:Leabharlann int a;public:
A(){ cout<<”A`s default constactour called.\n”;};
return 0;
}
2.#include<iostream>
Using namespace std
main(){
int a=1,b=2,c=3,d=4,y=10;
switch(y){
case1:a++;break;
default:d=1;
case2:b++;break;//d=1,b=3
case4:c++;break;
A(int i) {a= i; cout<<”A`s constractour called.\n”};
Void print(){ cout<<a<<’’,’’;}
~A() { cout<<”A`s destractor called.\n”}
Int Geta{ return a;}
}
Class B{
}
Cout <<a<<b<<c<<d<<endl;//1331
Return 0;
}
3.#include<iostream>
Using namespace std
Main(){
Int i=0,sum=0;
for(;;){
i+=2;
if(i>10){ cout <<”sum=”<<sum; break;}
Class A{
private:
int a;
static int b;
public:
A(int i){a=i;b+=i;}
Void f();
void A::f(){
cout <<”a=”<<a<<endl;
cout <<”b=”<<b<<endl;
}
Private A::b=0;
Main(){
A obj1(10);//
}
}
if(i==8) continue;
sum+=I;//0+2+4+6+10=22
}
Return 0;
}
4.#include<iostream>
Using namespace std;
Int &f1(int &a);
Int f2 (int b );
Main(){
Int x=10;
Inty=f1(x);
Void print();
Private:
Int b;
A aa;
}
Void B::print(){
A::print();
Cout <<b<<aa.Geta()<<endl;
}
Main(){
B bb[2] = {B(10,15,20),B(1,2,3)};
For(int i=0;i<2;i++){
bb[i].print();
Public:
A
B(){ cout<<”B`s default constactour called.\n”};
B(int i, int j, int k ){ A(i),aa(j)cout <<”B`s constractor called.\n”;}
~B(){ cout <<”B’s destractor called.\n”}
Int z=f2(x);
cout <<x<<endl//20
cout <<y<<endl;//20
cout <<z<<endl;//40
return 0;
}
Int &f1(int &a){
a+=a;
}
Int f2(int b){
b+=b;
}
}
#include<iostream>
Using namespace std
程序设计部分
读程序,写结果
1.#include<iostream>
Using namespace std
Main(){
int i=2,j=4,m,n;
m = ++i + j++;//i=3 j=5 m=3+4=7
n = (++i)+(++j)+m;//i=4,j=6,n=4+6+7=17
cout <<i<<j<<m<<n;//46717
相关文档
最新文档