北京理工大学考研数据结构模拟题9
- 格式:docx
- 大小:32.08 KB
- 文档页数:3
1.一元多项式相加(10分)成绩: 10 / 折扣: 0.8题目说明:编写一元多项式加法运算程序。
要求用线性链表存储一元多项式(参照课本)。
该程序有以下几个功能:1. 多项式求和输入:输入三个多项式,建立三个多项式链表Pa、Pb、Pc(提示:调用CreatePolyn(polynomial &P,int m)。
输出:显示三个输入多项式Pa、Pb、Pc、和多项式Pa+Pb、多项式Pa+Pb+Pc (提示:调用AddPolyn(polynomial &Pa, polynomial Pb), 调用PrintPolyn(polynomial P))。
0. 退出输入:根据所选功能的不同,输入格式要求如下所示(第一个数据是功能选择编号,参见测试用例):∙ 1多项式A包含的项数,以指数递增的顺序输入多项式A各项的系数(整数)、指数(整数)多项式B包含的项数,以指数递增的顺序输入多项式B各项的系数(整数)、指数(整数)多项式C包含的项数,以指数递增的顺序输入多项式C各项的系数(整数)、指数(整数)∙0 ---操作终止,退出。
输出:对应一组输入,输出一次操作的结果(参见测试用例)。
∙ 1 多项式输出格式:以指数递增的顺序输出: <系数,指数>,<系数,指数>,<系数,指数>,参见测试用例。
零多项式的输出格式为<0,0>∙0 无输出1.#include<iostream>#include<stdlib.h>using std::cin;using std::cout;using std::endl;struct date{int a;int b;struct date* pnext;};typedef struct date DATE;typedef struct date* PDATE;void output(PDATE p){int f=0;p=p->pnext;while(p!=NULL){if(p->a!=0){f=1;cout<<"<"<<p->a<<","<<p->b<<">";if(p->pnext==NULL)cout<<endl;elsecout<<",";}p=p->pnext;}if(f==0)cout<<"<0,0>"<<endl;}void add(PDATE a,PDATE b,PDATE c){PDATE p1,p2,p3;p1=a;p2=b;p3=c;if(p1!=NULL) p1=p1->pnext; //skip head if(p2!=NULL) p2=p2->pnext;while((p1!=NULL)&&(p2!=NULL)){if(p1->b>p2->b){p3->pnext=(PDATE)malloc(sizeof(DATE));p3=p3->pnext;p3->a=p2->a;p3->b=p2->b;p3->pnext=NULL;p2=p2->pnext;}else if(p1->b<p2->b){p3->pnext=(PDATE)malloc(sizeof(DATE));p3=p3->pnext;p3->a=p1->a;p3->b=p1->b;p3->pnext=NULL;p1=p1->pnext;}else{p3->pnext=(PDATE)malloc(sizeof(DATE));p3=p3->pnext;p3->a=p1->a+p2->a;p3->b=p1->b;p3->pnext=NULL;p1=p1->pnext;p2=p2->pnext;}}//end whileif(p1==NULL)p3->pnext=p2;if(p2==NULL)p3->pnext=p1;}int main(){int flag;int n;PDATE P[6]={NULL};PDATE p=NULL;for(int i=0;i<6;i++){P[i]=(PDATE)malloc(sizeof(DATE));P[i]->a=0;P[i]->b=0;P[i]->pnext=NULL;}cin>>flag;if(flag==1){for(int i=1;i<4;i++){p=P[i];cin>>n;while(n--!=0){p->pnext=(PDATE)malloc(sizeof(DATE));p=p->pnext;cin>>p->a>>p->b;p->pnext=NULL;}output(P[i]);}}add(P[1],P[2],P[4]);output(P[4]);add(P[4],P[3],P[5]);output(P[5]);}0 约瑟夫问题(10分)成绩: 10 / 折扣: 0.80 约瑟夫问题成绩10分折扣0.8(本题要求用循环链表实现)0 ,1, 2, 3题,只能选做三题.约瑟夫问题是一个经典的问题。
2017版北京理工大学《889数据结构》全套考研资料我们是布丁考研网北理工考研团队,是在读学长。
我们亲身经历过北理工考研,录取后把自己当年考研时用过的资料重新整理,从本校的研招办拿到了最新的真题,同时新添加很多高参考价值的内部复习资料,保证资料的真实性,希望能帮助大家成功考入北理工。
此外,我们还提供学长一对一个性化辅导服务,适合二战、在职、基础或本科不好的同学,可在短时间内快速把握重点和考点。
有任何考北理工相关的疑问,也可以咨询我们,学长会提供免费的解答。
更多信息,请关注布丁考研网。
以下为本科目的资料清单(有实物图及预览,货真价实):2017年北理工《数据结构》全套资料包含:一、北京理工大学《数据结构》历年考研真题2016年北理工《数据结构》考研真题2015年北理工《数据结构》考研真题2014年北理工《数据结构》考研真题2013年北理工《数据结构》考研真题2008年北理工《数据结构》考研真题2007年北理工《数据结构》考研真题2006年北理工《数据结构》考研真题2005年北理工《数据结构》考研真题2004年北理工《数据结构》考研真题2003年北理工《数据结构》考研真题二、北京理工大学889《数据结构》考研经验总结。
注意了:北理工889数据结构是近几年开始的科目,以前都是跟其他科目综合考试,2008年之后真题为回忆版,请大家了解好了再买,这些都是纯真题,买后不能退款。
三、北理工《数据结构》期末试题10套及答案。
...四、北理工《数据结构》考研复习提纲。
五、北理工《数据结构》考研题库及答案。
六、、严蔚敏《数据结构》全套教学视频48课时。
(电子版)七、、严蔚敏《数据结构》课后习题答案。
以下为截图及预览:2007年真题2016年真题课后习题及答案课后习题及答案2期中期末试卷期中期末试卷答案。
一、单项选择题1.算法必须具备的三个特性是( )。
A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性C.确定性、有穷性、稳定性D.易读性、稳定性、安全性2.下列数据中,( )是非线性数据结构。
A.栈B.队列C.完全二叉树D.顺序表3.算法分析的两个方面是( )。
A.空间复杂度和时间复杂度B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性4.非空的循环单链表head的尾结点p满足( )。
A.p->next==head B.p->next==NULLC.p==NULL D.p==head5.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是( )。
A.p->next=s;s->next=p->next; B.s->next=p->next;p->next=s;C.p->next=s;p->next=s->next; D.p->next=s->next;p->next=s;6.按照二叉树的定义,具有3个结点的二叉树有( )种。
A.3 B.4C.5 D.67.在一个有向图中,所有顶点的入度之和是所有顶点的出度之和的( )倍。
A.1/2 B.1C.2 D.48.二叉排序树是( )。
A.每一分支结点的度均为2的二叉树B.中序遍历得到一升序序列的二叉树C.按从左到右顺序编号的二叉树D.每一分支结点的值均小于左子树上所有结点的值,大于右子树上所有结点的值9.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别是( )。
A.1和 5 B.2和4C.4和2 D.5和110.下列说法中正确的是( )。
A.堆栈是在两端操作、先进后出的线性表B.堆栈是在一端操作、先进先出的线性表C.队列是在一端操作、先进先出的线性表D.队列是在两端操作、先进先出的线性表11.不带头结点的单链表head为空的判定条件是( )。
2013年北京理工大学一、选择题。
(每小题2分,共40分)1.数据结构在计算机中的表示称为______。
A.物理结构B.逻辑结构C.虚拟结构D.抽象结构2.数据结构对外的接口主要是通过______体现的。
A.数据对象B.数据关系C.基本操作D.数据元素3.设N是描述问题规模的非负整数,下面程序片段的时间复杂度是______。
x=N;while(x>0)x=x/2;A.O(log2N) B.O(N) C.O(Nlog2N) D.O(N2)4.线性链表中一个结点所占用的空间______。
A.必须连续B.部分地址必须连续C.不一定连续D.连续与否无所谓5.将长度为m的单链表接在长度为n的单链表的后面,算法的时间复杂度为______。
A.O(n) B.O(1) C.O(m) D.O(m+n)6.设顺序表长度为n,从表中删除元素的概率相等。
则在平均情况下,从表中删除一个元素需要移动的元素个数是______。
A.(n-1)/2 B.n/2 C.n(n-1)/2 D.n(n+1)/27.在单链表中,增加一个头结点的目的是______。
A.方便运算的实现B.用于标识单链表C.使单链表至少有一个结点D.用于标识起始点的位置8.写出链栈的类型定义如下:9.一个栈的输入序列为a b c d e f,则下列序列中不可能的输出序列是______。
A.b c d a f e B.f e d c b aC.f e d c a b D.e d c b f a10.若一个栈以向量V[0..n-1]存储,设栈空时,栈顶指针top为n,则下面x进栈的正确操作是______。
A.top=top+1;V[top]=x;B.V[top]=x;top=top+1;C.top=top-1;V[top]=x;D.V[top]=x;top=top-1;11.一个队列的入队序列是a b c d e f,则队列的输出序列是______。
A.a b c d e f B.f e d c b aC.f e d c a b D.e d c b f a12.下列更适合表示队列的链表结构是______。
2017年北京理工大学数据结构889模拟试题说明:考纲上的分值分布是填空题20分、选择题30分、问答题70分、算法题30分,而根据学长们的经验,分值分布是有误的,下面分值分布仅供参考。
一、填空题(每空1分,共20分)1. 数据结构中评价算法的两个重要指标是()和()。
2. 线性表可以在()位置插入删除,栈只能在()位置插入删除,队列只能在()位置插入删除。
3. 有向图n个顶点,最多有()条边,最少有()条边;无向图n个顶点,最多有()条边,最少有()条边;有向完全图有()条边;无向完全图()边。
4. 在快速排序、堆排序、归并排序中,_________排序是稳定的,该排序的时间复杂度为____。
5. 设一组初始记录关键字序列为(49,38,65,97,76,13,27,50),则以d=4 为增量的一趟希尔排序结束后的结果为____。
6. 设有一组初始记录关键字序列为(50,16,23,68,94,70,73),则将它们调整成初始堆只需把16 与____相互交换即可。
7. 下面程序段的功能是实现在二叉排序树中插入一个新结点,请在下划线处填上正确的内容:typedef struct node{int data;struct node *lchild;struct node *rchild;}bitree;void bstinsert(bitree *&t,int k){if (t==0 ) {____________________________;t->data=k;t->lchild=t->rchild=0;}else if (t->data>k) bstinsert(t->lchild,k);else__________________________;}8. 设无向图G 中有n 个顶点e 条边,则用邻接矩阵作为图的存储结构进行深度优先或广度优先遍历时的时间复杂度为_________;用邻接表作为图的存储结构进行深度优先或广度优先遍历的时间复杂度为_________。
本资料由理硕教育整理,理硕教育是全国唯一专注于北理工考研辅导的学校,相对于其它机构理硕教育有得天独厚的优势。
丰富的理工内部资料资源与人力资源确保每个学员都受益匪浅,确保理硕教育的学员初试通过率89%以上,复试通过率接近100%,理硕教育现开设初试专业课VIP一对一,初试专业课网络小班,假期集训营,复试VIP一对一辅导,复试网络小班,考前专业课网络小班,满足学员不同的需求。
因为专一所以专业,理硕教育助您圆北理之梦。
详情请查阅理硕教育官网第 6 章图课后习题讲解1. 填空题⑴设无向图G中顶点数为n,则图G至少有()条边,至多有()条边;若G为有向图,则至少有()条边,至多有()条边。
【解答】0,n(n-1)/2,0,n(n-1)【分析】图的顶点集合是有穷非空的,而边集可以是空集;边数达到最多的图称为完全图,在完全图中,任意两个顶点之间都存在边。
⑵任何连通图的连通分量只有一个,即是()。
【解答】其自身⑶图的存储结构主要有两种,分别是()和()。
【解答】邻接矩阵,邻接表【分析】这是最常用的两种存储结构,此外,还有十字链表、邻接多重表、边集数组等。
⑷已知无向图G的顶点数为n,边数为e,其邻接表表示的空间复杂度为()。
【解答】O(n+e)【分析】在无向图的邻接表中,顶点表有n个结点,边表有2e个结点,共有n+2e个结点,其空间复杂度为O(n+2e)=O(n+e)。
⑸已知一个有向图的邻接矩阵表示,计算第j个顶点的入度的方法是()。
【解答】求第j列的所有元素之和⑹有向图G用邻接矩阵A[n][n]存储,其第i行的所有元素之和等于顶点i的()。
【解答】出度⑺图的深度优先遍历类似于树的()遍历,它所用到的数据结构是();图的广度优先遍历类似于树的()遍历,它所用到的数据结构是()。
【解答】前序,栈,层序,队列⑻对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(),利用Kruskal算法求最小生成树的时间复杂度为()。
2022年北京理工大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、下列说法不正确的是()。
A.图的遍历是从给定的源点出发每个顶点仅被访问一次B.遍历的基本方法有两种:深度遍历和广度遍历C.图的深度遍历不适用于有向图D.图的深度遍历是一个递归过程2、下列排序算法中,占用辅助空间最多的是()。
A.归并排序B.快速排序C.希尔排序D.堆排序3、线性表的顺序存储结构是一种()。
A.随机存取的存储结构B.顺序存取的存储结构C.索引存取的存储结构D.Hash存取的存储结构4、已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7}, E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>, <V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>},G的拓扑序列是()。
A.V1,V3,V4,V6,V2,V5,V7B.V1,V3,V2,V6,V4,V5,V7C.V1,V3,V5,V2,V6,V7D.V1,V2,V5,V3,V4,V6,V75、用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时()。
A.仅修改队头指针B.仅修改队尾指针C.队头、队尾指针都可能要修改D.队头、队尾指针都要修改6、下列关于无向连通图特性的叙述中,正确的是()。
Ⅰ.所有的顶点的度之和为偶数Ⅱ.边数大于顶点个数减1 Ⅲ.至少有一个顶点的度为1A.只有Ⅰ B.只有Ⅱ C.Ⅰ和Ⅱ D.Ⅰ和Ⅲ7、排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。
下列排序方法中,每一趟排序结束时都至少能够确定一个元素最终位置的方法是()。
Ⅰ.简单选择排序Ⅱ.希尔排序Ⅲ.快速排序Ⅳ.堆排Ⅴ.二路归并排序A.仅Ⅰ、Ⅲ、Ⅳ B.仅Ⅰ、Ⅱ、Ⅲ C.仅Ⅱ、Ⅲ、Ⅳ D.仅Ⅲ、Ⅳ、Ⅴ8、一棵哈夫曼树共有215个结点,对其进行哈夫曼编码,共能得到()个不同的码字。
北京理工大学数据结构考研例题解析7本资料由理硕教育整理,理硕教育是全国唯一专注于北理工考研辅导的学校,相对于其它机构理硕教育有得天独厚的优势。
丰富的理工内部资料资源与人力资源确保每个学员都受益匪浅,确保理硕教育的学员初试通过率89%以上,复试通过率接近100%,理硕教育现开设初试专业课VIP一对一,初试专业课网络小班,假期集训营,复试VIP一对一辅导,复试网络小班,考前专业课网络小班,满足学员不同的需求。
因为专一所以专业,理硕教育助您圆北理之梦。
详情请查阅理硕教育官网第 7 章查找技术课后习题讲解1. 填空题⑴顺序查找技术适合于存储结构为()的线性表,而折半查找技术适用于存储结构为()的线性表,并且表中的元素必须是()。
【解答】顺序存储和链接存储,顺序存储,按关键码有序⑵设有一个已按各元素值排好序的线性表,长度为125,用折半查找与给定值相等的元素,若查找成功,则至少需要比较()次,至多需比较()次。
【解答】1,7【分析】在折半查找判定树中,查找成功的情况下,和根结点的比较次数最少,为1次,最多不超过判定树的深度。
⑶对于数列{25,30,8,5,1,27,24,10,20,21,9,28,7,13,15},假定每个结点的查找概率相同,若用顺序存储结构组织该数列,则查找一个数的平均比较次数为()。
若按二叉排序树组织该数列,则查找一个数的平均比较次数为()。
【解答】8,59/15【分析】根据数列将二叉排序树画出,将二叉排序树中查找每个结点的比较次数之和除以数列中的元素个数,即为二叉排序树的平均查找长度。
⑷长度为20的有序表采用折半查找,共有()个元素的查找长度为3。
【解答】4【分析】在折半查找判定树中,第3层共有4个结点。
⑸假定一个数列{25,43,62,31,48,56},采用的散列函数为H(k)=k mod 7,则元素48的同义词是()。
【解答】62【分析】H(48)= H(62)=6⑹在散列技术中,处理冲突的两种主要方法是()和()。
北理工《数据结构与算法》在线作业试卷总分:100 测试时间:-- 试卷得分:99.5一、单选题(共40 道试题,共99.5 分。
)得分:99.51. 图的存储结构不包括()A. 数组表示B. 邻接表C. 邻接多重表D. 孩子兄弟表示正确答案:D 满分:2.5 分得分:2.52. 当两个元素比较出现反序时就相互交换位置的排序方法称为()。
A. 归并排序B. 选择排序C. 交换排序D. 插入排序正确答案:C 满分:2.5 分得分:2.53. 快速排序属于那种排序类型()。
A. 选择排序B. 插入排序C. 交换排序D. 基数排序正确答案:C 满分:2.5 分得分:2.54. 中序遍历一棵二叉排序树所得到的结点序列是键值的()序列。
A. 递增或递减B. 递减C. 递增D. 无序正确答案:C 满分:2.5 分得分:2.55. 关键路径是指AOE(Activity On Edge)网中()。
A. 最长的回路B. 最短的回路C. 从源点到汇点(结束顶点)的最长路径D. 从源点到汇点(结束顶点)的最短路径正确答案:C 满分:2.5 分得分:2.56. 设有一个二维数A[m][n],以行序为主序存储。
假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,则A[4][5]在()位置,(10)表明用10进数表示。
A. 692(10)B. 626(10)C. 709(10)D. 724(10)正确答案:C 满分:2.5 分得分:2.57. 当待排序列基本有序时,下列排序方法中()最好。
A. 直接插入排序B. 快速排序C. 堆排序。
一、单项选择题(共40道试题, 共100分。
)V1.3个结点旳无向完全连通图至少有()条边。
A.3B.4C.5D.62.设有一种二维数A[m][n], 以行序为主序存储。
假设A[0][0]寄存位置在644(10), A[2][2]寄存位置在676(10), 每个元素占一种空间, 则A[4][5]在()位置, (10)表明用10进数表达。
A.692(10)B.626(10)C.709(10)D.724(10)3.具有n个顶点旳有向完全图有()条弧。
A.nB.n*(n-1)C.n*(n+1)D.n*n4.队列旳操作特点是()。
A.先进先出B.后进先出D.只能从队尾出队5.一种栈旳入栈序列是abcde, 则栈旳不也许旳输出序列是()。
A.edcbaB.decbaC.dceabD.abcde6.某二叉树旳前序和后序序列恰好相似, 则该二叉树一定是()旳二叉树。
A.空或只有一种结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子7.学习数据构造重要目旳是()。
A.处理数值计算问题B.研究程序设计技巧C.选用合适数据构造, 写出更有效旳算法D.是计算机硬件课程旳基础8.任何一种无向连通图旳最小生成树()。
A.只有一棵B.有一棵或多棵D.也许不存在9.栈是一种()旳数据构造。
A.存取受限旳线性构造B.存取不受限旳线性构造C.存取受限旳非线性构造D.存取不受限旳非线性构造10.线性表采用链式存储时, 结点旳存储地址()A.必须是不持续旳B.持续与否均可C.必须是持续旳D.和头结点旳存储地址相持续11.一棵高度(假定树根结点为第0层)为4旳完全二叉树中旳结点数至少为()。
A.15B.16C.17D.3112.次序查找适合于存储构造为()旳查找表。
A.压缩存储B.散列存储D.次序存储或链式存储13.设连通图G中旳边集E={(a, b), (a, e), (a, c), (b, e), (e, d), (d, f), (f, c)}, 则从顶点a出发可以得到一种深度优先遍历旳顶点序列为()A.abedfcB.acfebdC.aebdfcD.aedfcb14.评价排序算法好坏旳原则重要是()。
本资料由理硕教育整理,理硕教育是全国唯一专注于北理工考研辅导的学校,相对于其它机构理硕教育有得天独厚的优势。
丰富的理工内部资料资源与人力资源确保每个学员都受益匪浅,确保理硕教育的学员初试通过率89%以上,复试通过率接近100%,理硕教育现开设初试专业课VIP一对一,初试专业课网络小班,假期集训营,复试VIP一对一辅导,复试网络小班,考前专业课网络小班,满足学员不同的需求。
因为专一所以专业,理硕教育助您圆北理之梦。
详情请查阅理硕教育官网
数据结构试卷(九)
一、选择题(30分)
1.下列程序段的时间复杂度为()。
for(i=0;i<m;i++) for(j=0;j<t;j++) c[i][j]=0;
for(i=0;i<m;i++) for(j=0;j<t;j++) for(k=0;k<n;k++) c[i][j]=c[i][j]+a[i][k]*b[k][j];
(A) O(m*n*t) (B) O(m+n+t) (C) O(m+n*t) (D) O(m*t+n)
2.设顺序线性表中有n个数据元素,则删除表中第i个元素需要移动()个元素。
(A) n-i (B) n+l -i (C) n-1-i (D) i
3.设F是由T1、T2和T3三棵树组成的森林,与F对应的二叉树为B,T1、T2和T3的结点数分别为N1、N2和N3,则二叉树B的根结点的左子树的结点数为()。
(A) N1-1 (B) N2-1 (C) N2+N3 (D) N1+N3
4.利用直接插入排序法的思想建立一个有序线性表的时间复杂度为()。
(A) O(n) (B) O(nlog2n) (C) O(n2) (D) O(1og2n)
5.设指针变量p指向双向链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列为()。
(A) p->right=s;s->left=p;p->right->left=s;s->right=p->right;
(B) s->left=p;s->right=p->right;p->right=s;p->right->left=s;
(C) p->right=s;p->right->left=s;s->left=p;s->right=p->right;
(D) s->left=p;s->right=p->right;p->right->left=s;p->right=s;
6.下列各种排序算法中平均时间复杂度为O(n2)是()。
(A) 快速排序(B) 堆排序(C) 归并排序(D) 冒泡排序
7.设输入序列1、2、3、…、n经过栈作用后,输出序列中的第一个元素是n,则输出序列中的第i个输出元素是()。
(A) n-i (B) n-1-i (C) n+l -i (D) 不能确定
8.设散列表中有m个存储单元,散列函数H(key)= key % p,则p最好选择()。
(A) 小于等于m的最大奇数(B) 小于等于m的最大素数
(C) 小于等于m的最大偶数(D) 小于等于m的最大合数
9.设在一棵度数为3的树中,度数为3的结点数有2个,度数为2的结点数有1个,度数为1的结点数有2个,那么度数为0的结点数有()个。
(A) 4 (B) 5 (C) 6 (D) 7
10.设完全无向图中有n个顶点,则该完全无向图中有()条边。
(A) n(n-1)/2 (B) n(n-1) (C) n(n+1)/2 (D) (n-1)/2
11.设顺序表的长度为n,则顺序查找的平均比较次数为()。
(A) n (B) n/2 (C) (n+1)/2 (D) (n-1)/2
12.设有序表中的元素为(13,18,24,35,47,50,62),则在其中利用二分法查找值为24
的元素需要经过()次比较。
(A) 1 (B) 2 (C) 3 (D) 4
13.设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查
找长度为()。
(A) 6 (B) 11 (C) 5 (D) 6.5
14.设有向无环图G中的有向边集合E={<1,2>,<2,3>,<3,4>,<1,4>},则下列属于
该有向图G的一种拓扑排序序列的是()。
(A) 1,2,3,4 (B) 2,3,4,1 (C) 1,4,2,3 (D) 1,2,4,3
15.设有一组初始记录关键字序列为(34,76,45,18,26,54,92),则由这组记录关键字
生成的二叉排序树的深度为()。
(A) 4 (B) 5 (C) 6 (D) 7
二、填空题(30分)
1.设指针p指向单链表中结点A,指针s指向被插入的结点X,则在结点A的前面插入结点X时的操作序列为:
1) s->next=___________;2) p->next=s;3) t=p->data;
4) p->data=___________;5) s->data=t;
2.设某棵完全二叉树中有100个结点,则该二叉树中有______________个叶子结点。
3.设某顺序循环队列中有m个元素,且规定队头指针F指向队头元素的前一个位置,队尾指针R指向队尾元素的当前位置,则该循环队列中最多存储_______队列元素。
4.对一组初始关键字序列(40,50,95,20,15,70,60,45,10)进行冒泡排序,则第一趟需要进行相邻记录的比较的次数为__________,在整个排序过程中最多需要进行__________趟排序才可以完成。
5.在堆排序和快速排序中,如果从平均情况下排序的速度最快的角度来考虑应最好选择_________排序,如果从节省存储空间的角度来考虑则最好选择________排序。
6.设一组初始记录关键字序列为(20,12,42,31,18,14,28),则根据这些记录关键字构造的二叉排序树的平均查找长度是_______________________________。
7.设一棵二叉树的中序遍历序列为BDCA,后序遍历序列为DBAC,则这棵二叉树的前序序列为____________________。
8.设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为7、19、2、6、
32、3、21、10,根据这些频率作为权值构造哈夫曼树,则这
棵哈夫曼树的高度为________________。
9.设一组记录关键字序列为(80,70,33,65,24,56,48),则
用筛选法建成的初始堆为_______________________。
10.设无向图G(如右图所示),则其最小生成树上所有边的权值之
和为_________________。
三、判断题(20分)
1.有向图的邻接表和逆邻接表中表结点的个数不一定相等。
( )
2.对链表进行插入和删除操作时不必移动链表中结点。
( )
3.子串“ABC”在主串“AABCABCD”中的位置为2。
( )
4.若一个叶子结点是某二叉树的中序遍历序列的最后一个结点,则它必是该二叉树的先序遍历序列中的最后一个结点。
( )
5.希尔排序算法的时间复杂度为O(n2)。
( )
6.用邻接矩阵作为图的存储结构时,则其所占用的存储空间与图中顶点数无关而与图中边数有关。
( )
7.中序遍历一棵二叉排序树可以得到一个有序的序列。
( )
8.入栈操作和入队列操作在链式存储结构上实现时不需要考虑栈溢出的情况。
( ) 9.顺序表查找指的是在顺序存储结构上进行查找。
()
10.堆是完全二叉树,完全二叉树不一定是堆。
()
五、算法设计题(20分)
1.设计计算二叉树中所有结点值之和的算法。
2.设计将所有奇数移到所有偶数之前的算法。
3.设计判断单链表中元素是否是递增的算法。