北京理工大学2013级数据结构B试题(A卷)_答案模板

合集下载

2003-2016年北京理工大学889数据结构考研真题及答案解析 汇编

2003-2016年北京理工大学889数据结构考研真题及答案解析 汇编

2017版北京理工大学《889数据结构》全套考研资料我们是布丁考研网北理工考研团队,是在读学长。

我们亲身经历过北理工考研,录取后把自己当年考研时用过的资料重新整理,从本校的研招办拿到了最新的真题,同时新添加很多高参考价值的内部复习资料,保证资料的真实性,希望能帮助大家成功考入北理工。

此外,我们还提供学长一对一个性化辅导服务,适合二战、在职、基础或本科不好的同学,可在短时间内快速把握重点和考点。

有任何考北理工相关的疑问,也可以咨询我们,学长会提供免费的解答。

更多信息,请关注布丁考研网。

以下为本科目的资料清单(有实物图及预览,货真价实):2017年北理工《数据结构》全套资料包含:一、北京理工大学《数据结构》历年考研真题2016年北理工《数据结构》考研真题2015年北理工《数据结构》考研真题2014年北理工《数据结构》考研真题2013年北理工《数据结构》考研真题2008年北理工《数据结构》考研真题2007年北理工《数据结构》考研真题2006年北理工《数据结构》考研真题2005年北理工《数据结构》考研真题2004年北理工《数据结构》考研真题2003年北理工《数据结构》考研真题二、北京理工大学889《数据结构》考研经验总结。

注意了:北理工889数据结构是近几年开始的科目,以前都是跟其他科目综合考试,2008年之后真题为回忆版,请大家了解好了再买,这些都是纯真题,买后不能退款。

三、北理工《数据结构》期末试题10套及答案。

...四、北理工《数据结构》考研复习提纲。

五、北理工《数据结构》考研题库及答案。

六、、严蔚敏《数据结构》全套教学视频48课时。

(电子版)七、、严蔚敏《数据结构》课后习题答案。

以下为截图及预览:2007年真题2016年真题课后习题及答案课后习题及答案2期中期末试卷期中期末试卷答案。

北京理工大学《数据结构》试题及答案(B卷)

北京理工大学《数据结构》试题及答案(B卷)

一、单项选择题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为空的判定条件是( )。

北京理工大学数据结构编程练习答案

北京理工大学数据结构编程练习答案

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题,只能选做三题.约瑟夫问题是一个经典的问题。

2013级软件工程数据结构B卷答案及评分细则

2013级软件工程数据结构B卷答案及评分细则

10级软件工程专业《数据结构》试题B卷答案及评分细则一、选择题(每小题3分,共30分,选错不给分,选对给3分)1,C 2,A 3,D 4,C 5,B 6,C 7,B 8,B 9,A 10,A二、填空题(每空2分,共20分,填对给2分,填错不给分)1,2 4;2,SXSSXXSX3,-+A*BC/DE4,128 75,存储位置指针6,任意若干连续字符序列7,相同类型数据元素三、应用题1 解:其步骤为i1=index(S,S1,1)………………………………………………(2分)i2=index(S,S2,1)+3………………………………………………(2分)sub1=substr(S,i1,length(S)-i1+1) …………………………………(2分)sub2=substr(S,i2,length(S)-i2+1…………………………………………(2分) S3=concat(sub1, sub2) ………………………………………………(2分)2 解本题即为构造最小生成树,按照最小生成树的构造方法,构造如下:303解:其拓扑排序序列为152634;156234;152364;512634;516234;512364;5612344 解:按照题目要求构造的二叉树如下四、算法设计题由于队列是先进先出,而栈是先进后出,所以只有经过两个栈,即先在第一个栈里先进后出,再经过第二个栈后进先出来实现队列的先进先出。

因此用两个栈模拟一个队列运算就是用一个栈作为输入,而另一个栈作为输出。

当进队列时,总是将数据进入到作为输入的栈中。

在输出时,如果作为输出的栈已空,则从输入栈将已输入到输入栈的所有数据压入输出栈中,然后由输出栈输出数据;如果作为输出的栈不空,则就从输出栈输出数据。

显然,只有在输入、输出栈均为空时队列才为空。

…………………………(写出思想给5分)一个栈s1用来插入元素,另一个栈S2用来删除元素,删除元素时应将前一栈s1中的所有元素读出,然后进入到第二个栈s2中,算法描述如下:Void Enqueue(s1,x)……………………………………………(2分)stack s1;int x;{if(s1->top==0)Printf(“队列上溢“);ElsePush(s1,x);}Void Dequeue(s1,s2,x) ……………………………………………(2分)Stack s1,s2;Int x;{ S->top=0; /将s2清空While (!empty(s1) /将s1的所有元素退栈后压入s2,此时栈s1为空 Push(s2,pop(s1));Pop(s2,x); /弹出栈s2的栈顶元素(对首元素)并赋给xWhile (!empty(s2) /将剩于元素重新压入栈s1恢复为原s1中的顺序 Push(s1,pop(s2));}Int Queue_empty(s1)……………………………………………(1分) Stack s1;{if empty(s1)Return(1);ElseReturn(0);}。

数据结构B期末考试-B卷和参考答案.docx

数据结构B期末考试-B卷和参考答案.docx

一、单项选择题(每小题2分,共30分)1.下列关于栈的叙述中,正确的是()oA.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对2.在数据结构中,与所使用的计算机硬件无关的是数据的()结构。

A.逻辑B.存储C.逻辑和存储D.物理3.以下说法正确的是()oA.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构4.六个元素按照6, 5, 4, 3, 2, 1的顺序入栈,下列哪一个是合法的出栈序列?()A.546132B. 453126C. 346512D. 2341565.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为()A.8B. 9C. 10D. 116.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是()A, (100,80,90,60,120,110,130) B. (100,120,110,130,80, 60,90)C, (100,60,80,90,120,110,130)D, (100,80, 60,90,120,130,110)7.下列陈述中正确的是()A.二叉树是度为2的有序树B.二叉树中结点只有一个孩子时无左右之分C.二叉树中必有度为2的结点D.二叉树中最多只有两棵子树,并且有左右之分8.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为()A. eB. 2eC. n2—eD. n2—2e9.栈和队列都是()A.限制存取位置的线性结构B.顺序存储的线性结构C.链式存储的线性结构D.限制存取位置的非线性结构10.在具有n个叶子结点的严格二叉树(即结点的度要么是0要么是2)中,结点总数为()A. 2n+lB. 2nC. 2n・lD. 2n-211.在循环双链表的P所指的结点之前插入S所指结点的操作是()oA.p->prior = s; s->next = p; p->prior->next = s; s->prior = p->priorB.p->prior = s; p->prior->next = s; s->next = p; s->prior = p->priorC.s->next = p; s->prior = p->prior; p->prior = s; p->prior->next = sD.s->next = p; s->prior = p->prior; p->prior->next = s; p->prior = s12,单链表中,增加一个头结点的目的是为了()oA.使单链表至少有一个结点B.标识表结点中首结点的位置C.方便算法的实现D.说明单链表是线性表的链式存储13,对一个满二叉树,m个叶子,n个结点,深度为h,则()。

数据结构与算法设计-习题1-3

数据结构与算法设计-习题1-3

int
data;
struct Lnode *next;
// 数据域 // 指针域
} LNode, *LinkList; LinkList la, lb; // 单链表的头指针 请用 la 和 lb 中的结点合并生成一个新的非 递增的有序单链表 lc。合并完成后,原来的 la 和 lb 成为空链表。
作者 (时间 2000年) 北京理工大学计算机科学工程系 秦怀青 email qinhq010@
正确且高效的算法如下: Status DeleteK(SqList &a ,int i, int k) {//设线性表元素从a.base[1]起存储,从第i个元素起
删除k个元素。
if ( i<1|| k< 0 || (i+k)>a.length) return ERROR;
for ( j=i+k;j<=a.length; ++j)
操作步骤
1) 建空表 Lc; 2) 依次从 La 或 Lb 中“摘取”元素值较小的
结点插入到 Lc 表中第一个结点之前直至其 中一个表变空为止; 3) 继续将 La 或 Lb 其中一个表的剩余结点插 入在 Lc 表的表头结点之后; 4) 释放 La 表和 Lb 表的表头结点。
作者 (时间 2000年) 北京理工大学计算机科学工程系 秦怀青 email qinhq010@
单链表中逻辑上相邻的元素的物理位置 不一定 紧邻。
(3)在单链表中,除了头结点外,任一结点的存储位置 由 该结点的直接前趋 指示。
(4)在单链表中设置头结点的作用是
在表的第一个元素结点之前插入新元素结点或删除 第一个元素结点不需修改头作指者 针(时间 2000年)

北京理工大学(已有10试题)

北京理工大学(已有10试题)

北京理工大学信息科学技术学院自动控制理论1999——2000,2002——2008自动控制理论(非控类)2004电子技术(含模拟、数字部分)1999——2000,2002——2008模拟电子技术与数字电子技术2000——2002模拟与数字电路1999——2000,2002微机控制与应用技术2002——2008控制工程基础2003——2008物理光学2003——2004,2007——2008应用光学1999——2008,2010(2010为回忆版)波动光学2002大学物理2006——2008精密机械设计2003——2008(其中2003年称“精密机械基础”)激光原理1999——2001,2005——2008电子电路2003——2005,2007——2008电路分析基础1999——2000信号处理导论2003——2008信号与系统1996——2002半导体物理学1999——2008电磁场理论1999——2000,2002——2008微机原理及应用2004——2005电动力学2003——2004理论力学1996——2008(96——98非原版)生物化学1999——2008(注:2007年试卷共11页,缺P5-6页)生物化学(A)2005——2006,2008计算机专业基础(含计算机组织与结构、数据结构)2007计算机技术基础(含计算机组成原理、操作系统和数据结构)2003——2006计算机原理(含操作系统)1999——2002程序设计1999——2000计算机系统结构基础(含计算机组成原理、计算机网络和数据结构)2004——2005 软件理论基础(含离散数学、操作系统、数据结构)1999——2005数据结构与程序设计2004——2008微波技术基础1999——2000晶体管理原理与制造1999——2000机电工程学院电子技术(含模拟、数字部分)1999——2000,2002——2008电子技术基础2007——2008自动控制理论1999——2000,2002——2008自动控制理论(非控类)2004电磁学2005——2008量子力学2005——2008运筹学2001——2008工程力学基础2007——2008流体力学基础2006工程流体力学2005数学物理方程2002——2006数学物理方法2000材料力学1997——1999,2002——2008理论力学1996——2008(96——98非原版)电动力学2003——2004微机控制与应用技术2002——2008控制工程基础2003——2008精密机械设计2003——2008(其中2003年称“精密机械基础”)应用光学1999——2008,2010(2010为回忆版)波动光学2002微机原理及应用2004——2005有机化学1997——2008无机化学(A)2003——2007无机化学(B)2003——2005,2007——2008分析化学2003——2008分析化学(A)2006物理化学2003——2008高分子物理2005——2008高分子化学及高分子物理2003——2004安全系统工程2003——2005,2008工程热力学(不含传热学)2003——2008爆炸与安全技术2005爆炸及其作用2006爆轰理论2003——2005化学2002——2005传感与测试技术2004——2005算法语言1998微波技术基础1999——2000晶体管理原理与制造1999——2000传热学2000应用电子技术2004机械与车辆工程学院电子技术(含模拟、数字部分)1999——2000,2002——2008 电子技术基础2007——2008自动控制理论1999——2000,2002——2008自动控制理论(非控类)2004机械设计2001——2008机械设计原理2001机械制造工程基础2003——2008机械制造工艺学2002理论力学1996——2008(96——98非原版)微机控制与应用技术2002——2008应用光学1999——2008,2010(2010为回忆版)电路分析基础1999——2000模拟电子技术与数字电子技术2000——2002模拟与数字电路1999——2000,2002精密机械设计2003——2008(其中2003年称“精密机械基础”)控制工程基础2003——2008微机原理及应用2004——2005工程热力学(不含传热学)2003——2008物理化学2003——2008工程力学基础2007——2008流体力学基础2006工程流体力学2005交通运输系统工程学2005,2007——2008微波技术基础1999——2000晶体管理原理与制造1999——2000数字电路与数字信号处理2008材料科学与工程学院物理化学(A)2008高分子物理2005——2008高分子化学及高分子物理2003——2004材料科学基础2003——2007材料力学1997——1999,2002——2008普通化学2008综合化学2008有机化学1997——2008无机化学(A)2003——2007无机化学(B)2003——2005,2007——2008分析化学2003——2008分析化学(A)2006理论力学1996——2008(96——98非原版)电化学原理2003——2006微波技术基础1999——2000晶体管理原理与制造1999——2000化工与环境学院自动控制理论1999——2000,2002——2008自动控制理论(非控类)2004过程控制原理2000——2005,2007——2008化工原理2002——2008有机化学1997——2008无机化学(A)2003——2007无机化学(B)2003——2005,2007——2008分析化学2003——2008分析化学(A)2006物理化学2003——2008电化学原理2003——2006环境微生物学2007——2008工程热力学(不含传热学)2003——2008微波技术基础1999——2000晶体管理原理与制造1999——2000生命科学与技术学院生物化学1999——2008(注:2007年试卷共11页,缺P5-6页)生物化学(A)2005——2006,2008分析化学2003——2008分析化学(A)2006细胞生物学2004——2006微生物学2005——2008分子生物学2007——2008有机化学1997——2008无机化学(A)2003——2007无机化学(B)2003——2005,2007——2008药理学2007信号处理导论2003——2008信号与系统1996——2002电子电路2003——2005,2007——2008物理光学2003——2004,2007——2008应用光学1999——2008,2010(2010为回忆版)波动光学2002信号理论基础2007——2008计算机专业基础(含计算机组织与结构、数据结构)2007计算机技术基础((含计算机组成原理、操作系统和数据结构)2003——2006计算机原理(含操作系统)1999——2002程序设计1999——2000计算机系统结构基础(含计算机组成原理、计算机网络和数据结构)2004——2005 软件理论基础(含离散数学、操作系统、数据结构)1999——2005数据结构与程序设计2004——2008理学院电子技术(含模拟、数字部分)1999——2000,2002——2008大学物理2006——2008数学分析1995,1999——2000,2003——2008高等代数2003——2008电磁学2005——2008量子力学2005——2008电动力学2003——2004普通化学2008综合化学2008无机化学(A)2003——2007无机化学(B)2003——2005,2007——2008分析化学2003——2008分析化学(A)2006物理化学(A)2008物理化学2003——2008有机化学1997——2008理论力学1996——2008(96——98非原版)材料力学1997——1999,2002——2008工程热力学(不含传热学)2003——2008数学物理方程2002——2006数学物理方法2000电路分析基础1999——2000模拟电子技术与数字电子技术2000——2002模拟与数字电路1999——2000,2002激光原理1999——2001,2005——2008微机控制与应用技术2002——2008爆炸与安全技术2005爆炸及其作用2006电化学原理2003——2006工程力学基础2007——2008流体力学基础2006工程流体力学2005微波技术基础1999——2000晶体管理原理与制造1999——2000管理与经济学院宏微观经济学2008管理学2003——2008(2003,2004名称叫做“管理学基础”。

北京理工大学数据结构试题及答案

北京理工大学数据结构试题及答案

北京理工大学数据结构 10 年期末试题数据结构试卷(一)、单选题(每题 2 分,共 20 分)1. 栈和队列的共同特点是 ()。

A. 只允许在端点处插入和删除元素B. 都是先进后出C. 都是先进先出D. 没有共同点2. 用链接方式存储的队列,在进行插入运算时 ().A. 仅修改头指针B. 头、尾指针都要修改C.仅修改尾指针D.头、尾指针可能都要修改10.设有 6个结点的无向图,该图至少应有 ()条边才能确保是一个连通图。

A.5B.6C.7D.8二、填空题(每空 1 分,共 26 分)1. 通常从四个方面评价算法的质量: ____________ 、 ________ 、 ________ 和 __________ 。

2. 一个算法的时间复杂度为(n 3+n 2log 2n +i4n )/n 2,其数量级表示为 ____________ 。

3. 假定一棵树的广义表表示为A ( C ,D ( E ,F ,G ),H ( I ,J )),则树中所含的结点数为 __________ 个,树的深度为 ____________ 树的度为 __________ 。

4. 后缀算式 9 2 3 +- 10 2 / -的值为 _________ 。

中缀算式( 3+4X ) -2Y/3 对应的后缀算式 为 ________________________________ 。

5.若用链表存储一棵二叉树时, 每个结点除数据域外, 还有指向左孩子和右孩子的两个指 针。

在这种存储结构中, n 个结点的二叉树共有 ___________ 个指针域,其中有 ________ 个 指针域是存放了地址,有 __________________ 个指针是空指针。

3. 4. 5. 以下数据结构中哪一个是非线性结构? ()A. 队列B. 栈C. 线性表D. 二叉树设有一个二维数组 A [m ][n ],假设A [0][0]存放位置在644伽A [2][2]存放位置在676(io ), 每个元素占一个空间,问A .688B . 树最适合用来表示 (A.有序数据元素A [3][3](IO )存放在什么位置?脚注(io 表示用10进制表示。

02331数据结构2013年10月份历年真题附答案

02331数据结构2013年10月份历年真题附答案

绝密★考试结束前全国2013年10月高等教育自学考试数据结构试题课程代码:02331请考生按规定用笔将所有试题的答案涂、写在答题纸上。

选择题部分注意事项:1. 答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。

2. 每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。

如需改动,用橡皮擦干净后,再选涂其他答案标号。

不能答在试题卷上。

一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。

错涂、多涂或未涂均无分。

1.算法的时间复杂度表征的是A.算法的可读性B.算法的难易程度C.执行算法所耗费的时间D.执行算法所耗费的存储空间2.对需要频繁插入和删除结点的线性表,适合的存储方式是A.顺序储存B.链式存储C.索引存储D.散列存储3.在头指针为head的循环链表中,判断指针变量P指向尾结点的条件是A.p->next->next==head B.p->next==headC.p->next->next==NULL D.p->next==NULL4.迪杰斯特拉(Dijkstra)算法的功能是A.求图中某顶点到其他顶点的最短路径B.求图中所有顶点之间的最短路径C.求图的最小生成树D.求图的拓扑排序序列5.若栈的进栈序列为1,2,3,4,5,则经过出入栈操作不可能...获得的出栈序列是A.4,5,3,2,1 B.4,3,5,1,2C.1,2,3,4,5 D.5,4,3,2,16.A是7×4的二维数组,按行优先方式顺序存储,元素A[0][0]的存储地址为1 000,若每个元素占2个字节,则元素A[3][3]的存储地址为A.1015 B.1016C.1028 D.10307.深度为4的完全二叉树的结点数至少为A.4 B.8C.13 D.158.若采用邻接矩阵A存储有向图G,则结点k的入度等于A中A.结点k对应行元素之和B.结点k对应列元素之和C.结点k对应行和列元素之和D.非零元素之和9.无向图G的邻接矩阵一定是A.对称矩阵B.对角矩阵C.三角矩阵D.单位矩阵10.下列关于有向带权图G的叙述中,错误..的是A.图G的任何一棵生成树都不含有回路B.图G生成树所含的边数等于顶点数减1C.图G含有回路时无法得到拓扑序列D.图G的最小生成树总是唯一的11.在下列排序算法中,关键字比较次数与初始排列次序无关的是A.冒泡排序B.希尔排序C.直接插入排序D.直接选择排序1 2.对下图进行拓扑排序,可以得到的拓扑序列是A.a b c d e B.b a c d eC.b c a d e D.a b d c e13.下列线性表中,能使用二分查找的是A.顺序存储(2,12,5,6,9,3,89,34,25) B.链式存储(2,12,5,6,9,3,89,34,25) C.顺序存储(2,3,5,6,9,12,25,34,89) D.链式存储(2,3,5,6,9,12,25,34,89) 14.在下列查找方法中,平均查找长度与结点数量无直接关系的是A.顺序查找B.分块查找C.散列查找D.基于B树的查找15.下列排序算法中,时间复杂度为O(nlog2 n)的算法是A.快速排序B.冒泡排序C.直接选择排序D.直接插入排序非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。

2012 ~ 2013学年第二学期-数据结构期中试卷_北理珠(2013-5-11)

2012 ~ 2013学年第二学期-数据结构期中试卷_北理珠(2013-5-11)

A. SA+141B. SA+180C. SA+186D. SA+2107、用无回溯的模式匹配法(KMP法)求串“ababab”的next[j]的值为()。

A. 010101B. 011221C. 011233D. 011234C.可链接存储D. 数据元素可以是多个字符8、链表不具有的特点是()。

A. 可随机访问任一元素B. 插入删除不需要移动元素C. 不必事先估计存储空间D. 所需空间与线性表长度成正比9、中缀表达式A*(B+C)/(D-E+F)的后缀表达式是()。

A. A*B+C/D-E+FB. AB*C+D/E-F+C. ABC+*DE-F+/D. ABCDEF*+/-+10、已知输入序列为abcd,经过输出受限的双端队列后能得到的输出序列是()。

A. dacbB. cadbC. dbcaD. 以上都不是二、填空题(每空2.5分,共25分)【得分:】1、有如下递归函数:int func(int n){if(n<2) return(n);else return(func(n-1)+func(n-2));}执行语句printf(“%d\n”,func(4));的结果是。

2、若一个算法中的语句频度之和为T(n)=3n+n*log2n+n2,则算法的时间复杂度为O(_ ___)。

3、不带头结点的单链表head为空的条件是。

4、假设为循环队列分配的向量空间为Q[20](下标从0开始),若队列的长度和队头指针值分别为13和17,则当前队尾指针的值为。

5、将一个A[15][15]的对称矩阵采用只存储下三角中元素的压缩存储(第一个元素为A[0][0]),按行优先存入一维数组B[120]中,A中元素[3][7]在B 数组中的位置为。

6、广义表运算式HEAD(TAIL((a,b,c),(x,y,z)))的结果是。

7、已知L是带头结点的非空单链表,删除首元结点的三条语句为:P=L->next;;free(P);8、表长为N的顺序表,当在任何位置上插入或删除一个元素的概率相等时,第2页共7页第 3 页 共 7 页……………………………………………装………………………………订…………………………线……………………………………………………此处不能书写此处不能书写此处不能书写 此处不能书写此处不能书写 此处不能书写此处不能书写插入一个元素所需移动元素的平均次数为: ;删除一个元素需要移动的元素个数为: 。

北理工《数据结构与算法》在线作业

北理工《数据结构与算法》在线作业

北理工《数据结构与算法》在线作业试卷总分: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. 堆排序。

2012-2013(2)数据结构A卷及参考答案资料

2012-2013(2)数据结构A卷及参考答案资料

一、填空题(每空1 分,共10分)1.向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动n-i+1个元素。

2.带有一个头结点的单链表head为空的条件是head->next=head。

3.由带权为9、2、5、7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度为44 。

4.设s=’I︺AM︺A︺TEACHER’,其长度是 14 。

5.二维数组A[10][20]采用列序为主方式存储,每个元素占一个存储单元并且A[0][0]的存储地址是200,则A[6][12]的地址是326。

6.假设在有序线性表A[1..20]上进行二分查找,则比较一次查找成功的结点数目个数为__ 1__。

7.深度为k的完全二叉树至少有2k-1个结点,至多有2k-1个结点。

8.在无向图G的邻接矩阵A中,若A[i][j]等于1,则A[j][i ]等于1。

9.执行广义表操作GetTail[ GetHead[ ((a,b),(c,d)) ] ]后的结果为(b)。

二、选择题(每小题1分,共10分)1.下列数据中,哪一个是非线性结构?( D )A. 栈B. 队列C. 字符串D. 二叉树2.设P指向单链表的某个节点,在P之后插入一个节点S的操作为( C)A. P->next = S;B. P->next = S->next; S->next = P->next;C. S->next = P->next; P->next = S;D. P->next = S; P = P->next;3.设三个元素的进栈顺序为abc,则下列哪个序列是不可能出现的出栈序列( D)A. abcB. acbC. cbaD. cab4 .假设用块链存储结构表示串,如果每一个块的大小为4个字符(每个字符占用一个字节),一个指针占4个字节,则一个长为15的串需要多少字节的存储空间(C)A. 15B. 20C. 32D. 405.用一维数组存储一个6×6的对称阵A,以行序为主序存储该矩阵的下三角(包括对角线)元素,数组的起始位置为100,每个数组元素占4个字节,那么A[3][6]的存储位置为( A )A. 168B. 140C. 132D. 1086.设一个度为3的树中,度为1,2,3的结点个数分别为2,3,4,则该树中有多少个叶子结点?( D )A. 9B. 10C. 11D. 127.一个AOV网如图1所示,则下列哪一个序列不是该图的拓扑有序序列?( B)图1A. 124359786B. 123459786C. 142357896D. 4132578698.对一个长度为10的有序表进行折半查找,在等概率情况下查找成功的平均查找长度为( A)A. 2.9B. 3.0C. 3.2D. 3.49.下列排序算法中,那个算法是稳定的?( D)A. 希尔排序B. 快速排序C. 堆排序D. 归并排序10.设数据结构A = (D,R)。

北理工《数据结构与算法》在线作业满分答案

北理工《数据结构与算法》在线作业满分答案

北理工《数据结构与算法》在线作业满分答案
北理工《数据结构与算法》在线作业
试卷总分:100 得分:100
一、单选题
1. 在数据结构中,与所使用的计算机无关的是数据的()结构
A. 逻辑
B. 存储
C. 逻辑和存储
D. 物理
正确答案:A
2.一个n*n对称矩阵,如果以行或列为主序存入内存,则其容量为()。

A. n*n
B. n*n/2
C. n*(n+1)/2
D. (n+1)*(n+1)/2
正确答案:C
3.一个数组第一个元素的存储地址是100,每个数组元素的长度为2,则第5个元素的地址是()。

A. 110
B. 108
C. 100
D. 120
正确答案:B
4.如果结点a有三个兄弟,而且b为a的双亲,则b的度为()。

A. 3
B. 4
C. 5
D. 2
正确答案:B
5. 下面四种内排序方法中,要求容量最大的是()。

A. 插入排序
B. 选择排序
C. 快速排序
D. 归并排序
正确答案:D
6. 采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为()。

A. n
B. n/2
C. (n-1)/2
D. (n+1)/2
正确答案:D
7. 图的存储结构不包括()
A. 数组表示
B. 邻接表
C. 邻接多重表。

(完整word版)组合数学北京理工期末真题2013答案

(完整word版)组合数学北京理工期末真题2013答案

课程编号:MTH07065 北京理工大学2012 – 2013学年第二学期计算机科学与技术专业 组合数学试题 A 卷班级 学号 姓名 成绩一. (10分) 从数集{1,2,…,15}中取3个数的子集,要求子集中没有相邻数,有多少种取法。

解法一:任选3个数有C(15,3)种方案。

两数相邻另一个分离:1,2和14,15这两个相邻数对,各对应另一不相邻数有12种选择;2,3到13,14共12种相邻数对,各对应另一不相邻数有11种选择。

三数相邻有13种选择。

286131112122315=-⨯-⨯-⎪⎭⎫⎝⎛解法二:任选3个数有C(15,3)种方案。

取两个相邻数有14种选择,另一个与已取出两数不同有13种选择。

每三个相邻的数在前一步被计数了两次,需要补回一次。

286131314315=+⨯-⎪⎭⎫⎝⎛解法三:先放12个0排成一排。

再在13 个空挡中放3个1,有C(13,3)种方法。

在12个0和3个1形成的排列中,数1所在的位置abc ,即得到3个不相邻的1到15中的数。

286313=⎪⎭⎫⎝⎛解法四:令3个数从小到大排列为a,b,d ,满足a+1<b ,b+1<d 。

令B=b-1,D=d-1,则a<B<D 为从1到13中的数,且无不相邻限制。

286313=⎪⎭⎫⎝⎛二. (10分) (1) 求7阶反射Gray 码1010111的前驱和后继。

(2) 在7阶反射Gray 码中,序号是1和2的码是0000000和0000001,求1010111的序号。

(1) 1010111的前驱是1010110,后继是1010101。

(2) 令b=1100101,则1010111的序号是(b)2+1=102三. (10分) 设有4堆硬币,各堆的硬币数分别是17,25,37,50。

游戏人I 和II 轮流取硬币,游戏人I 先取。

每次取硬币任选一堆,至少从该取一枚硬币,至多取走该堆的所有硬币。

当各堆硬币都取完后游戏结束,最后取硬币的人胜。

北京理工大学数据结构模拟题答案

北京理工大学数据结构模拟题答案

本资料由理硕教育整理,理硕教育是全国唯一专注于北理工考研辅导的学校,相对于其它机构理硕教育有得天独厚的优势。

丰富的理工内部资料资源与人力资源确保每个学员都受益匪浅,确保理硕教育的学员初试通过率89%以上,复试通过率接近100%,理硕教育现开设初试专业课VIP一对一,初试专业课网络小班,假期集训营,复试VIP一对一辅导,复试网络小班,考前专业课网络小班,满足学员不同的需求。

因为专一所以专业,理硕教育助您圆北理之梦。

详情请查阅理硕教育官网数据结构试卷(一)参考答案一、选择题(每题2分,共20分)1.A2.D3.D4.C5.C6.D7.D8.C9.D 10.A二、填空题(每空1分,共26分)1.正确性易读性强壮性高效率2.O(n)3.9 3 34.-1 3 4 X * + 2 Y * 3 / -5.2n n-1 n+16.e 2e7.有向无回路8.n(n-1)/2 n(n-1)9.(12,40)()(74)(23,55,63)10.增加111.O(log2n) O(nlog2n)12.归并三、计算题(每题6分,共24分)1.线性表为:(78,50,40,60,34,90)2.邻接矩阵:邻接表如图11所示:图113. 用克鲁斯卡尔算法得到的最小生成树为: (1,2)3, (4,6)4, (1,3)5, (1,4)8, (2,5)10, (4,7)204. 见图12四、读算法(每题7分,共14分) 1. (1)查询链表的尾结点(2)将第一个结点链接到链表的尾部,作为新的尾结点(3)返回的线性表为(a 2,a 3,…,an ,a 1) 2. 递归地后序遍历链式存储的二叉树。

五、法填空(每空2分,共8 分) true BST->left BST->right 六、编写算法(8分)int CountX(LNode* HL,ElemType x) { int i=0; LNode* p=HL;//i 为计数器 while(p!=NULL) { if (P->data==x) i++; p=p->next;}//while, 出循环时i 中的值即为x 结点个数 return i; }//CountX数据结构试卷(二)参考答案一、选择题1.D2.B3.C4.A5.A6.C7.B8.C二、填空题1.构造一个好的HASH函数,确定解决冲突的方法2.stack.top++,stack.s[stack.top]=x3.有序4.O(n2),O(nlog2n)5.N0-1,2N0+N16.d/27.(31,38,54,56,75,80,55,63)8.(1,3,4,5,2),(1,3,2,4,5)三、应用题1.(22,40,45,48,80,78),(40,45,48,80,22,78)2.q->llink=p; q->rlink=p->rlink; p->rlink->llink=q; p->rlink=q;3.2,ASL=91*1+2*2+3*4+4*2)=25/94.树的链式存储结构略,二叉树略5.E={(1,3),(1,2),(3,5),(5,6),(6,4)}6.略四、算法设计题1.设有一组初始记录关键字序列(K1,K2,…,K n),要求设计一个算法能够在O(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K i,右半部分的每个关键字均大于等于K i。

北京理工大学COM07017-2013编译原理与设计A

北京理工大学COM07017-2013编译原理与设计A

课程编号:COM07017北京理工大学2015—2016学年第二学期2013级计算机科学与技术类编译原理与设计试题A卷班级学号姓名成绩** 注意:各题均必须答在答题纸上。

一.判断题(在答题表中填上“√”或“×”)(10分)1.对任何一个NFA M,不一定都存在一个DFA M' ,使M和M'所识别的字的全体相同。

2.一个DFA M的无关状态(或称之为多余状态、无用状态)是指从DFA M的初态开始,任何输入序列都不能到达的那些状态。

3.词法分析器通常需要超前扫描输入字符以确定每个单词的结束位置。

4.多数程序设计语言的词法规则可用正则文法或正规式进行描述。

5.第10章的PL/0编译程序采用Display表查找外层过程的最新活动记录。

6.若过程P第K次被调用,则P的Display表中就有K+1个元素。

7.在后缀式(逆波兰式)和中缀式中,运算对象排列的顺序一致。

8.语法制导翻译方法可用来产生各种中间代码,但不能用来产生目标代码。

9.所有LR分析器的总控程序都是一样的,只是分析表各有不同。

10.一个素短语除自身外,其子串中没有其他素短语。

二、单项选择题(10分)1.下述关于词法分析器中的对半互补输入缓冲区的描述错误的是【】A)方便输入字符串的超前扫描B)方便字符回退C)可以支持无限长度单词的识别D)缓冲区大小一般设置为磁盘扇区大小的整数倍2.下述关于Lex和Yacc的描述错误的是【】A)Lex和Yacc编译器接受正规式并据此构造相应的有限状态自动机B)Lex编译器采用子集法将NFA转化为DFAC)Lex编译器采用划分法对DFA进行化简D)Yacc编译器生成的是移进归约语法分析器3.无法在局部优化阶段实施的优化技术是【】A)公共子表达式删除B)常量合并C)无用赋值删除D)死代码删除4.解释程序和编译程序的区别在于【】A)是否生成中间代码B)加工的对象不同C)使用的实现技术不同D)是否生成目标程序5.关于编译程序中使用符号表的作用描述错误的是【】A)收集标识符属性信息B)语义检查依据C)代码生成时地址分配依据D)便于移植6.从无冲突的LR(1)项目集规范簇通过合并同心项目集,得到的LALR(1)项目集规范簇中会出现【】冲突A)移进-移进B)移进-归约C)归约-归约D)任何7.就文法的描述能力,有【】A)LALR(1)⊂SLR(1) B)SLR(1)⊂LR(0)C)LALR(1) ⊂LR(1) D)LR(1) ⊂LR(0)8.如果一个正规式所描述的语言是个无限集合,则该正规式一定含有的运算是【】A)连接运算“•”B)或运算“|”C)闭包运算“*”D)括号运算“()”9.有文法G(S)的属性文法如下所示(语义规则中的×和+分别是常规意义下的算术运算符):S→E {输出(E.val)}E→E?T {E.val=E1.val×T.val}E→T{E.val= T.val}T→T#num {T.val=T1.val+num.lexval}T→num {T.val=num.lexval}则句子1?2?3#4的语义处理结果是【】A)10 B)34 C)14 D)5410.LR分析法中,分析栈中存放的符号串始终是规范句型的【】A)短语B)活前缀C)项目D)句柄三.填空题(30分)1.第10章的PL/0编译程序采用【①】遍扫描,以【②】分析程序为核心对输入源程序进行解释执行。

2013北理工《889数据结构》考研真题

2013北理工《889数据结构》考研真题

2013北理工《889数据结构》考研真题一、选择题。

(每小题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,则队列的输出序列是______。

最新北京理工大学级数据结构b试题(a卷)-答案

最新北京理工大学级数据结构b试题(a卷)-答案

一、选择题1、从逻辑结构上可以把数据结构分为【 C 】。

A、动态结构和静态结构B、紧凑结构和非紧凑结构C、线性结构和非线性结构D、内部结构和外部结构2、在一个长度为n的顺序存储的线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移【 B 】个元素。

A、n-iB、n-i+1C、n-i-1D、i3、链表结构不具有下列【 B 】特点。

A、插入和删除无需移动元素B、可随机访问链表中的任意元素C、无需实现分配存储空间D、所需空间与结点个数成正比。

4、在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行【C】。

A、s->next = p->next; p->next = s;B、p->next = s->next; s->next = p;C、q->next = s; s->next = p;D、p->next = s; s->next = q;5、一个栈的入栈序列是1,2,3,4,5,则栈不可能输出的序列是【 C 】。

A、54321B、45321C、43512D、123456、判断一个队列Q(元素最多为M个)为空的条件是【 C 】。

A、Q->rear – Q->front = MB、Q->rear – Q->front -1 ==MC、Q->rear == Q->frontD、Q->rear + 1 == Q->front7、在一个链队列中,假设f和r分别指向队首和队尾,则插入s所指结点的运算是【 A 】。

A、r->next = s; r=s;B、f->next = s; f=s;C、s->next = r; r=s;D、s->next = f; f=s;8、深度为5的二叉树至多有【 A 】个结点。

A、31B、32C、16D、109、在一非空二叉树的中序遍历序列中,根结点的右边【 A 】。

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

一、选择题1、从逻辑结构上可以把数据结构分为【 C 】。

A、动态结构和静态结构B、紧凑结构和非紧凑结构C、线性结构和非线性结构D、内部结构和外部结构2、在一个长度为n的顺序存储的线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移【 B 】个元素。

A、n-iB、n-i+1C、n-i-1D、i3、链表结构不具有下列【 B 】特点。

A、插入和删除无需移动元素B、可随机访问链表中的任意元素C、无需实现分配存储空间D、所需空间与结点个数成正比。

4、在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行【C】。

A、s->next = p->next; p->next = s;B、p->next = s->next; s->next = p;C、q->next = s; s->next = p;D、p->next = s; s->next = q;5、一个栈的入栈序列是1,2,3,4,5,则栈不可能输出的序列是【 C 】。

A、54321B、45321C、43512D、123456、判断一个队列Q(元素最多为M个)为空的条件是【 C 】。

A、Q->rear – Q->front = MB、Q->rear – Q->front -1 ==MC、Q->rear == Q->frontD、Q->rear + 1 == Q->front7、在一个链队列中,假设f和r分别指向队首和队尾,则插入s所指结点的运算是【 A 】。

A、r->next = s; r=s;B、f->next = s; f=s;C、s->next = r; r=s;D、s->next = f; f=s;8、深度为5的二叉树至多有【 A 】个结点。

A、31B、32C、16D、109、在一非空二叉树的中序遍历序列中,根结点的右边【 A 】。

A、只有右子树上的所有结点B、只有右子树上的部分结点C、只有左子树上的所有结点B、只有左子树上的部分结点10、如果一棵完全二叉树有1001个结点,则其叶子结点个数为【 D 】。

A、250B、500C、502D、49011、在一个图中,所有顶点的度数之和是所有边数的【 C 】倍。

A、1/2B、1C、2D、412、采用邻接表存储的图的深度优先遍历算法类似于二叉树的【 A 】。

A、先序遍历B、中序遍历C、后序遍历D、按层遍历13、一个有n个顶点的无向图最多有【 D 】条边。

A、nB、n(n-1)C、2nD、n(n-1)/214、静态查找表与动态查找表的根本区别在于【 B 】。

A、它们的逻辑结构不同B、施加在其上的操作不同C、所包含的数据元素类型不同D、存储实现不一样15、顺序查找适用于存储结构为【 C 】的线性表。

A、哈希存储B、压缩存储C、顺序存储或链式存储D、索引存储16、若一颗二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足【 B 】。

A、所有结点均无孩子B、所有结点均无右孩子C、只有一个叶子结点D、是一颗满二叉树17、二叉排序树是【 B 】。

A、每一分支结点的度均为2的二叉树B、中序遍历得到一升序序列的二叉树C、按从左到右顺序编号的二叉树D、每一分支结点的值均小于左子树上所有结点的值,又大于右子树上所有结点的值18、具有12个记录的序列,采用冒泡排序最少的比较次数是【 C 】。

A、1B、144C、11D、6619、堆的形状是一棵【 C 】。

A、二叉排序树B、满二叉树C、完全二叉树D、平衡二叉树20、在一个包含n个顶点e条边的无向图的邻接矩阵中,零元素的个数为【D 】。

A、eB、2eC、n2-eD、n2-2e二、判断对错【x】1、具有n个顶点的连通图至少有n条边。

【x】2、链表的单个结点内部的存储空间可以是不连续的。

【√】3、栈和队列的共同点是只允许在端点处插入和删除元素。

【√】4、使用循环队列可以解决队列顺序存储时的假溢出问题。

【x】5、要想通过遍历序列还原为惟一二叉树,应当知道其先序序列和后序序列。

【√】6、若一个结点是某二叉树子树的中序遍历序列的第一个结点,则它也必是该子树的后序遍历序列的第一个结点。

【x】7、完全二叉树可采用顺序存储结构存储,非完全二叉树则不能。

【√】8、对于一棵含有n个结点的完全二叉树,将其结点按从上到下且从左至右按1至n进行编号,则对其任意一个编号为i的结点,如果它有左孩子,则其左孩子结点的编号为2i。

【√】9、哈夫曼树的所有子树也都是哈夫曼树。

【x 】10、当图的边较少而结点较多时,求其最小生成树用Prim算法比用Kruskal算法效率更高。

三、填空题1、向量的第一个元素的存储地址是200,每个元素的长度是3,那么第6个元素的存储地址是。

答案:2152、在一个带头结点的单链表中,p所指结点既不是首元结点,也不是尾元结点,删除p 结点的语句序列是、、。

答案: q=p,p=p->next,free(q)3、设堆栈有足够的存储空间,那么向堆栈中插入一个数据元素,即入栈的操作过程是、。

答案: 存入数据元素,栈顶指针加14、一般情况下,向循环队列中插入数据元素时,需要判满队列是否已经满了,判断条件是:。

答案: (rear+1)%MaxSize == front6、已知循环队列用数组data[1…n]存储元素值,front和rear分别表示队头和队尾指针,则当前队列中元素的个数为。

答案: (n+rear-frone)%n或(n+rear-frone) mod n7、深度为k的二叉树最多有个结点,深度为k的完全二叉树最少有个结点(k≥1)。

答案: 2k-1,2k-18、如以{2,3,6,7,9}作为叶子结点的权值构造哈夫曼树,则其最短带权路径长度为。

答案: 5510、已知某二叉树的中序序列和前序序列分别为42758136、12457836,则它的后序序列为。

答案: 4785263112、在有n个顶点的有向图中,每个顶点的度最大可达到。

答案: 2(n-1)13、在有序表A[1…18]中,采用折半查找算法查找元素值等于A[7]的元素,所比较过的元素的下标依次为。

答案: 9 4 6 714、一组记录的输入顺序为(25,38,65,90,72,14),则利用堆排序方法建立的初始“小顶堆”为。

答案: 14,38,25,90,72,65四、简答题1、设有一段正文是由字符集{a, b, c, d, e, f, g, h}组成,正文长度为100个字符,其中每个字符在正文中出现的次数分别为17, 12, 14, 4, 10, 9, 20, 3。

若采用哈夫曼树对这段文字进行压缩存储,请完成如下工作:(1)构造哈夫曼树(规定权值较小的结点为左子树);(2)求出每个字符的哈夫曼编码;(3)若其中一段正文的二进制编码序列为“10111100011000101”,请按(2)的哈夫曼编码将其译码成原始正文。

答案:(1)树的结构为:(2)编码为a=111,b=101,c=110,d=0001,e=100,f=001,g=01,h=0000(3)上述编码序列的对应原文为:badegg2、一棵有11个结点的二叉树的存储情况如下图所示(其中“∧”表示空指针),left[i]和right[i]分别表示结点i的左、右孩子,根结点是序号为3的结点,要求:(1)画出该二叉树;(2)分别写出该二叉树的前序和中序遍历序列。

第2题图答案:(1)二叉树的结构如图所示:(2)前序序列ALKRSECFMBD中序序列RKSLEAFCBDM3、设数据集合D={2, 24, 12, 15, 32, 9, 10, 35, 7, 5},要求:(1)依次读取D中的各个数据,构造一棵二叉排序树Bt;(2)如何根据此二叉树Bt求得数据集合D的一个有序序列?并写出该有序序列;(3)画出在上述二叉树中删除结点“12”后得到的二叉树结构。

答案:(1)构造的二叉排序树如下:(2)上述二叉树Bt的中序遍历序列即是数据集合D的一个有序序列:2,5,7,9,10,12,15,24,32,35(3)删除结点12后的二叉树结构为下面任意一种结构:或者4、用深度优先和广度优先遍历算法对下图G进行遍历(要求从顶点A出发),请给出深度优先和广度优先遍历序列。

第4 题图答案:深度优先序列:ABFDEGHC广度优先序列:ABCFDEHG5、对于如下所示的加权无向图,写出用Prim算法构造最小生成树的过程,并画出最后得到的最小生成树。

第5题图答案:最小生成树的构造过程如下图所示:五、按照指定功能,完成下列算法1、逆置带头结点的单链表 Lvoid inverse(LinkList &L) { p=L->next; L->next=NULL;while ( p) {succ=p->next;p->next=L->next;L->next=p;p = succ;}}2、算术表达式求值的算符优先算法。

设OPTR和OPND分别为运算符栈和运算数栈,OP 为运算符、界限符集合。

operandType EvaluateExpression( ){InitStack(OPTR); Push (OPTR, #);InitStack(OPND); c=getchar( );while (c!=‘#’ || GetTop(OPTR)!=‘#’ ){if (! In (c, OP)){Push(OPND, c);c=getchar( );}elseswitch ( Precede(GetTop(OPTR), c ){case <:Push(OPTR, c); c=getchar( ); break;case =:Pop(OPTR, x); c=getchar( ); break;case >:Pop ( OPTR, theta);Pop ( OPND, b); Pop(OPND, a);Push ( OPND, Operate(a, theta, b) );break;} //switch} //whilereturn GetTop(OPND);} //EvaluateExpression3、中序遍历递归算法void InOrderTraverse ( BiTree T , Status ( * Visit ) ( ElemType e ) ){ // 采用二叉链表存贮二叉树, visit( )是访问结点的函数// 本算法中序遍历以T为根结点指针的二叉树if ( T ){InOrderTraverse ( T->lchild, Visit );Visit ( T->data );InOrderTraverse ( T->rchild, Visit );}} //InOrderTraverse4、在有序表ST中折半查找法查找其关键字等于key的数据元素。

相关文档
最新文档