2014年912数据结构及参考答案
《数据结构》第九章习题参考答案

《数据结构》第九章习题参考答案《数据结构》第九章习题参考答案一、判断题(在正确说法的题后括号中打“√”,错误说法的题后括号中打“×”)1、快速排序是一种稳定的排序方法。
(×)2、在任何情况下,归并排序都比简单插入排序快。
(×)3、当待排序的元素很大时,为了交换元素的位置,移动元素要占用较多的时间,这是影响时间复杂度的主要因素。
(√)4、内排序要求数据一定要以顺序方式存储。
(×)5、直接选择排序算法在最好情况下的时间复杂度为O(n)。
( ×)6、快速排序总比简单排序快。
( ×)二、单项选择题1.在已知待排序文件已基本有序的前提下,效率最高的排序方法是(A)。
A.直接插入排序B.直接选择排序C.快速排序D.归并排序2.下列排序方法中,哪一个是稳定的排序方法?(B)A.直接选择排序B.折半插入排序C.希尔排序D.快速排序3、比较次数与排序的初始状态无关的排序方法是( B)。
A.直接插入排序B.起泡排序(时间复杂度O(n2))C.快速排序D.简单选择排序4、对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47 (4)15 21 25 47 84 则采用的排序是( A)。
A. 选择B. 冒泡C. 快速D. 插入5、快速排序方法在(D)情况下最不利于发挥其长处。
A. 要排序的数据量太大B. 要排序的数据中含有多个相同值C. 要排序的数据个数为奇数D. 要排序的数据已基本有序6、用某种排序方法对线性表{25,84,21,47,15,27,68,35,20}进行排序,各趟排序结束时的结果为:(基准)20,21,15,25,84,27,68,35,47(25)15,20,21,25,47,27,68,35,84(左20右47)15,20,21,25,35,27,47,68,84(左35右68)15,20,21,25,27,35,47,68,84 ;则采用的排序方法为(C)。
2014年解放军信大硕士入学真题数据结构

二.判断题(每小题 2 分,共 20 分) 1. 文件是记录的集合,每个记录由一个或多个数据项组成,因而一个文件可 看作由多个记录组成的数据结构。 2. 健壮的算法不会因非法的输入数据而出现莫名其妙的状态。 3. 顺序存储方式只能用于存储线性结构。 4. 栈与队列是一种特殊操作的线性表。
第2页 共4页
数据结构 科目试题
(共九大题,满分 150 分)
一.单项选择题(每小题 3 分,共 45 分) 1. 以下那一个术语与数据的存储结构无关?( A.栈 B. 哈希表 C. 线索树 ) D. 双向链表
2014年黑龙江省《数据结构》期末考试试题及答案(必备资料)

51、下列关于哈夫曼树的叙述中,错误的是
A.用n个结点构造的哈夫曼树是唯一的
B.哈夫曼树中只有度为0或度为2的结点
C.树中两个权值最小的结点可能是兄弟结点
D.同一结点集构造的二叉树中,哈夫曼树的WPL最小
52、不带头结点的单链表head为空的判定条件是 A 。
A 插入排序和快速排序 B 归并排序和快速排序
C 选择排序和归并排序 D 插入排序和归并排序
11、一棵左子树为空的二叉树在前序线索化后,其空指针域个数为
A.0 B.1 C.2 D.不确定
A 6 B 7 C 8 D 9
42、在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。
A.数据的处理方法 B.数据元素的类型
C.数据元素之间的关系 D.数据的存储方法
43、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。
A.单链表 B.静态链表 C.线性链表 D.顺序存储结构
44、衡量查找算法效率的主要标准是( C )。
A)元素个数 B)所需的存储量
C)平均查找长度 D)算法难易程度
45、有向图采用邻接矩阵存储,某一行中非零元素的个数等于
A.对应顶点v的度
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系
7、在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。
A.数据的处理方法 B.数据元素的类型
C.数据元素之间的关系 D.数据的存储方法
8、如果最常用的操作是取第i个结点及其前驱,则采用 D 存储方式最节省时间。
33、深度为k的完全二叉树所含叶结点的个数最为( B)。
2014年考研计算机统考真题及答案解析

2014考研统考考研统考计算机基础综合真题解析计算机基础综合真题解析【回忆版】一、单项选择题单项选择题::第1~40小题小题,,每小题2分,共80分。
下列每题给出的四个选项中下列每题给出的四个选项中,,只有一个选项是最符合题目要求的只有一个选项是最符合题目要求的。
2、假设栈初始为空,将中缀表达式a/b-(c*d+e*f)/g 转化为等价后缀表达式过程中,当扫描到f 时,栈中的元素依次为:A 、+(*-B 、+(-*C 、/+(*-*D 、/+-*涉及考点涉及考点::考察中缀和后缀表达式的转化,并考察栈这种数据结构4、如下图二叉树进行中序线索化,则元素X 的左、右线索指向的元素为A 、 ecB 、 eaC 、 dcD 、 ba涉及考点涉及考点::中序线索化二叉树,找出左右线索5、森林F 转化为对应二叉树T ,则F 的叶结点个数是()A 、T 的叶结点个数B 、T 中度为1的结点个数C 、T 的左孩子指向为空的个数D 、T 的右孩子指向为空的个数涉及考点涉及考点::森林转化为二叉树做法:第一,断开除最左孩子的孩子节点,第二,连接孩子节点中各兄弟节点,第三,将树顺时针旋转45度第四,同理处理其他树。
第五,将所有树按照先后顺序依次作为右子树连接。
6、5个元素有4种编码方案,下列不是前缀编码的是A 、01,0000,0001,001,1B 、011,000,001,010,1C 、000,001,010,011,100D 、0,100,110,1110,1100涉及考点涉及考点::字符的前缀编码8、用哈希(散列)方法处理冲突(碰撞)时可能发生堆积(聚集)现象,则下列会直接受到堆积现象影响的是A 、存储效率B 、散列函数C 、载运因子D 、平均查找长度涉及考点涉及考点::哈希(三列)方法处理冲突堆积现象影响的因素9、存一棵具有15个关键词的4阶B 树,则含有关键词的结点可能有A 、5B 、6C 、10D 、15涉及考点涉及考点::B 树10、用希尔排序法,对一列数据序列排序时,若第一次排序结果为:9,1,4,13,7,8,20,23,15,则该排序可能的间隔是:A 、2B 、3C 、4D 、5涉及考点涉及考点::希尔排序法中的间隔11、下列最不可能是快速排序第二轮的结果是A 、2,3,5,4,6,7,9B 、2,7,5,6,4,3,9C 、3,2,5,4,7,6,9D 、4,2,3,5,7,6,9涉及考点涉及考点::快速排序法12、程序P 在装置M 执行时间为20秒,编译优化后,P 执行的指令数是以前的70%,但CPI 为以前的1.2倍,则现在P 在M 上的执行时间为A 、8.4秒B 、11.7秒C 、14.0秒D 、16.8秒涉及考点涉及考点::cpu 计算时间的计算方法。
2013-2014第二学期数据结构期末试卷A卷答案

合肥学院20 13 至20 14 学年第 2 学期数据结构与算法设计 课程考试( A )卷答案一、选择题:(2分×15=30分)1.A 2.D 3.B 4.B 5. C 6.D 7. A 8. B 9. D 10. B 11. D 12. D 13. A 14. A 15. A二、填空题:(2分×10=20分)1. n+1-i 2. s->next=p->next; p->next=s3. 12,24,35,27,18,26 4. A[i][j]=1 5. h6. ki<=k2i && ki<=k2i+17. mid=(low+high)/2; r[mid].key>k 8. 中序。
三、应用题:(5分×5=25分)1.树的链式存储结构(3分) 二叉树(2分)2.邻接矩阵:⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡011110101110111010101110(3分)邻接表:(2分)3.(3分)(2分)4.(4分)E={(1,3),(1,2),(3,5),(5,6),(6,4)} (1分) 5、(5分)四、算法阅读题:(7分+5分=12分) 1、(1)查询链表的尾结点 (3分) (2)将第一个结点链接到链表的尾部,作为新的尾结点 (3分) (3)返回的线性表为(a2,a3,…,an,a1)。
(1) 2.递归地后序遍历链式存储的二叉树 (5分) 五、算法设计题:(7分+6分=13分) 1.void mergelklist(lklist *ha,lklist *hb,lklist *&hc)AB GC EH JF D Ilklist *s=hc=0; (2分)while(ha!=0 && hb!=0)if(ha->data<hb->data){if(s==0) hc=s=ha; else {s->next=ha; s=ha;};ha=ha->next;} else {if(s==0) hc=s=hb; else {s->next=hb; s=hb;};hb=hb->next;} (3分)if(ha==0) s->next=hb; else s->next=ha; (2分)}2.typedef struct node {int data; struct node *lchild,*rchild;} bitree; (2分)void swapbitree(bitree *bt){bitree *p;if(bt==0) return;swapbitree(bt->lchild); swapbitree(bt->rchild); (2分)p=bt->lchild; bt->lchild=bt->rchild; bt->rchild=p; (2分)}。
2014考研计算机真题及答案解析(详细)

有数据发送;乙每收到一个数据段都会发出一个接收窗口为 10 KB 的确认段。若甲在 t 时刻
发生超时时拥塞窗口为 8 KB,则从 t 时刻起,不再发生超时的情况下,经过 10 个 RTT 后,
甲的发送窗口是( )。
A. 10 KB
B.12 KB
C.14 KB
D.15 KB
39.下列关于 UDP 协议的叙述中,正确的是( )。
C.14.0 秒
D.16.8 秒
13.若 x=103,y=-25,则下列表达式采用 8 位定点补码运算实现时,会发生溢出的是
( )。
A. x+y
B.-x+y
C.x-y
D.-x-y
14.float 型数据通常采用 IEEE 754 单精度浮点格式表示。假定两个 float 型变量 x 和 y 分别
存放在 32 位寄存器 f1 和 f2 中,若(f1)=CC90 0000H,(f2)=B0C0 0000H,则 x 和 y 之间的关系
A.状态端口和控制端口可以合用同一个寄存器
B.I/O 接口中 CPU 可访问的寄存器称为 I/O 端口
C.采用独立编址方式时,I/O 端口地址和主存地址可能相同
D. 采用统一编址方式时,CPU 不能用访存指令访问 I/O 端口
22.若某设备中断请求的响应和处理时间为 100 ns,每 400 ns 发出一次中断请求,中断响应
3.循环队列存放在一组数组 A[0..M-1]中,end1 指向队头元素,end2 指向队尾元素的后一 个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳 M-1 个元素,初始时为
空。下列判断队空和队满的条件中,正确的是( )。
A.队空:end1 = = end2;队满:end1 = = (end2+1) mod M
数据结构习题参考答案

数据结构习题参考答案第一章答案一、填空题1.数据元素,数据项2. O(1),O(n),O(log 2n),O(n 2)3.线性结构,非线性结构,顺序结构,链式结构4.无,一,无,一5.前驱,一,无,任意6.任意7. O(n 1/2)8.O(1)<o(2n<="") 第二章答案一、填空题1. n/2,(n-1)/2分析:当在顺序线性表中的第i (1<=i<=n+1)个位置之前插入一个新元素时,从第i 个元素起向后的n+1-i 个元素均要向后移动一个位置。
因此在等概率情况下,插入操作中元素的平均移动次数为∑+==-++=112)1(11)(n i ni n n n f ;当在顺序线性表中删除第i (1<=i<=n )个位置上的元素,从第i+1个元素起向后的n-i 个元素均要向前移动一个位置。
因此在等概率情况下,删除操作中元素的平均移动次数为∑=-=-= n i n i n n n f 121)(1)(。
2.向后3.向前4.指针域5.一定,不一定6. O(n)7. O(n)8.消除空表的特殊性,统一表示和处理空表和非空表的情形,从而简化插入和删除等操作的某些细节。
9.前驱,后继10.O(n)二、填空题1. (1)2. (1)3. (4)4. (2)5. (2)6. (4)7. (4)8. (1)9. (4)10.(1)11.(2)12.(3)第三章参考答案一、填空题1.线性,任何,栈顶,队尾,队头2.先进后出(FILO ),队尾,队头,先进先出(FIFO )3. top==0,top==m4. 235415.前一个位置,所在位置,m-1分析:在顺序循环队列中约定头指针front 和尾指针rear 所指向的位置,是牺牲掉一个存储单元而方便表示队列空和队列满的条件,因此顺序循环队列中实际可用的存储单元只有m-1个。
6. (rear+1)%m==front ,rear==front7. O(1)8.返回地址,返回地址二、选择题1.(3) 2.(3) 3.(3) 4. (2)5. (2)6. (3)7. (1)8. (4)因为:顺序循环队列中的元素个数=??<+-≥-front rear m front rear front rear front rear ,整理合并可写成(rear-front+m)%m 。
2014年上半年真题答案软件设计师详细答案

在CPU中,常用来为ALU执行算术逻辑运算提供数据并暂存运算结果的寄存器是(1)。
(1)A.程序计数器 B.状态寄存器 C.通用寄存器 D.累加寄存器【答案】D【解析】本题考查计算机系统基础知识。
CPU 中有一些重要的寄存器,程序计数器( PC )用于存放指令的地址。
当程序顺序执行时,每取出一条指令, PC 内容自动增加一个值,指向下一条要取的指令,当程序出现转移时,则将转移地址送入PC,然后由PC给出新的指令地址。
状态寄行器用于记录运算中产生的标志信息。
状态寄存器中的每一位单独使用,成为标志位。
标志位的取值反映了ALU当前的工作状态,可以作为条件转移指令的转移条件。
典型的标志位有以下几种:进位标志位(C)、零标志位(Z)、符号标志位(S)、溢出标志位(V)、奇偶标志位(P)。
通用寄存器组是CPU中的一组工作寄存器,运算时用于暂存操作数或地址。
在程序中使用通用寄存器可以减少访问内存的次数,提高运算速度。
累加器(accumulator)是一个数据寄存器,在运算过程中暂时存放操作数和中间运算结果,不能用于长时间地保存一个数据。
某机器字长为n,最高位是符号位,其定点整数的最大值为(2)。
(2)A.2n-1 B.2n-1-1 C.2n D.2n-1【答案】B【解析】本题考查计算机系统中的数据表示基础知识。
机器字长为n,最高位为符号位,则剩余的n-1位用来表示数值,其最大值是这n-1位都为1,也就是2n-1-1。
海明码利用奇偶性检错和纠错,通过在n个数据位之间插入k个校验位,扩大数据编码的码距。
若n=48,则k应为(3)。
(3)A.4 B.5 C.6 D.7【答案】C【解析】本题考查数据校验基础知识。
设数据位是n位,校验位是k位,则n和k必须满足以下关系:2k-1 ≥ n + k。
若n=48,则k为6时可满足26-1 ≥ 48+6 。
海明码的编码规则如下。
设k个校验位为Pk,Pk-1,…,P1, n个数据位为Dn-1,Dn-2,…,D1,D0 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四,1(1) Element *Union(Element *A,Element *B)
{ Element *p[2],*Head=NULL,*Temp1,*Temp2; p[0]=A;p[1]=B;int i; if(p[0]==NULL) i=1; else i=0; while(p[i]!=NULL)
}
三 1,Pt==NULL Pt->next=Top Top=Pt Top!=NULL Top=Top->next
2,Head==NULL Pt2=Pt1 return Head Pt->Coef=Pt->Coef * P2.Coef Pt->Expn=Pt->Expn + P2.Expn
3,root->LChild==NULL && root->RChild==NULL Leaves(root->LChild)+Leaves(root->RChild) root !=NULL PostOrder(root->LChild) PostOrder(root->RChild)
2 int * Insert(BSNode *&root, int key)
{ if(root==NULL) { root=new BSNode(); if(root==NULL) return 2; root->key=key; root->LChild=root->RChild=NULL; return 0; } else if(key<root->key) Insert(root->LChild, key); else if(key>root->key) Insert(root->RChild, key); else return 1;
中山大学二○一四年
科目代码:912 科目名称:专业基础(数据结构)
一 1-5 BCABA 6-10 DCBD□ 11-15 BCDAB 16-20 ACCDD
第 10 题 应为 A[4][8]
二 1(1)
(2)4123567
2. DB,DE,DC,CF,BA 3.
4.分别是 3 次和 3 次 5.f:11 c:1011 e:1010 g:100 a:011 b:010 d:00 WPL :2*(0.28+0.21)+3*(0.1+0.12+0.13)+4*(0.07+0.09)=2.67
return Head;
} (2)
void Display(char *Name,Element *A) { cout<<t *pt=A;pt!=NULL;pt=pt->next) {cout<<pt->element;
if(pt->next!=NULL) cout<<",";} cout<<"}"; }
}
if(i==1) return Head;
while(p[1]!=NULL) { p[0]=A;
while(p[0]!=NULL&&p[0]->element!=p[1]->element) p[0]=p[0]->next;
if(p[0]==NULL) {Temp1=new Element(); Temp1->element=p[1]->element; Temp1->next=NULL; Temp2->next=Temp1; Temp2=Temp1;} p[1]=p[1]->next; }
{ Temp1=new Element(); Temp1->element=p[i]->element; Temp1->next=NULL; if(Head==NULL) Head=Temp1; else Temp2->next=Temp1; Temp2=Temp1; p[i]=p[i]->next;