东北林业大学数据结构2001级
数据结构考研真题及其答案
一、选择题1. 算法的计算量的大小称为计算的(B )。
【北京邮电大学2000 二、3 (20/8分)】A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于(C )【中科院计算所1998 二、1 (2分)】A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(C),它必须具备(B)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列D. 调度方法(2) A.可执行性、可移植性、可扩充性B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性【南京理工大学1999 一、1(2分)【武汉交通科技大学1996 一、1(4分)】4.一个算法应该是(B )。
【中山大学1998 二、1(2分)】A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C.5. 下面关于算法说法错误的是( D )【南京理工大学2000 一、1(分)】A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是( C )【南京理工大学2000 一、2 (分)】(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低4 A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为( C )两大类。
【武汉交通科技大学1996 一、4(2分)】A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是( D )。
【北方交通大学2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D.栈9.以下数据结构中,哪一个是线性结构(D )【北方交通大学2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下那一个术语与数据的存储结构无关( A )【北方交通大学2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为(C )【北京工商大学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为正整数,则最后一行的语句频度在最坏情况下是( D )A. O(n)B. O(nlogn)C. O(n3)D. O(n2) 【南京理工大学1998一、1(2分)】13.以下哪个数据结构不是多型数据类型( D )【中山大学1999 一、3(1分)】A.栈B.广义表C.有向图D.字符串14.以下数据结构中,( A )是非线性数据结构【中山大学1999 一、4】A.树B.字符串C.队D.栈15. 下列数据中,(C)是非线性数据结构。
数据结构与算法-东北林业大学 《数据结构》实验指导书new
计算机科学与技术专业《数据结构》实验指导书关于实习步骤的要求和建议从以往的教学事先实习的经验来看,在初学阶段执行严格的实习步骤规范(包括上机操作规范),机时利用率会大大提高,有助于养成良好的程序编制风格,培养严谨、科学、高效的工作方式。
在以往的教学实践中,经常发现很多学生抱怨说,化了两个小时才找出一个错误,甚至一无所获。
他们不明白造成这种情况的原因,正是他们自己。
有的学生不屑于按实习步骤规范去做,甚至对于实习步骤的要求和建议看都不看一遍,认为那是浪费时间,这是及其害的。
实习步骤规范不但可以培养科学化的工作作风,而且还能有效地避免错误。
具体的步骤机规范如下:1.问题分析与系统的结构设计充分地分析和理解问题本身,弄清要求作什么,限制条件是什么。
按照以数据结构为中心的原则划分模块,即定义数据结构及其在这些结构之上的操作,使得对数据结构的存取通过这些操作加以实现。
在这个过程中,要综合考虑系统功能。
要考虑系统结构清晰、合理、简单并且易于调试。
最后写出每个子程序(过程或函数)的规格说明,列出它们之间的调用关系,可以使用调用关系图表示则更加清晰,这样便完成了系统结构设计。
2.详细设计和编码详细设计的目的是对子程序(过程或函数)的进一步求精。
用 IF 、 WHILE和赋值语句等,以及自然语言写出算法的框架。
利用自然语言的目的是避免陷入细节。
在编码是,可以对详细设计的结果进一步求精,用高级语言表示出来。
程序的每一行最好不超过 60 个字符。
每个子程序(或过程、函数)通常不要太长,以 40 行为宜。
子程序(或过程、函数)包含的程序行数太多,易于造成理解的困难。
控制IF 、WHILE 等语句的连续嵌套的深度。
程序的目的性必须明确。
对每一段程序完成的作用,除非常明显的除外(如:x = x + 1; 注释为 x 加 1,没有什么意义),都应加以注释。
这会对程序的调试提供很多方便。
另外,根据情况可以设立若干调试点,即输出若干信息,用于验证和你的设想是否一致。
数据结构与算法-东北林业大学 数据结构演示文稿6[1]
数据结构
主讲: 主讲:
王阿川
哈夫曼树及其应用
路径长度: 路径长度 路径包含的分支 A 树的路径长度:树根到 数。树的路径长度 树根到 每个结点的路径长度之和。 每个结点的路径长度之和。 5 D 结点的带权路径:带权结点 B C 结点的带权路径 带权结点 4 到根的路径长与权的乘积。 到根的路径长与权的乘积。 F G H I J 树的带树路径长度(WPL): 树的带树路径长度 树中所有带权路径长度之 M 3 和。
J
树的基本操作: 树的基本操作: • • • • • • • • • • INITIATE(T) (初始化操作) 初始化操作) 初始化操作 ROOT(T)/ROOT(x) (求根函数) 求根函数) PARENT(T,x) 求双亲函数) (求双亲函数) CHILD(T,x,i) 求孩子函数) (求孩子函数) RIGHT SIBLING(T,x) (求右兄函数) 求右兄函数) CRT_TREE(x,F) (建树函数) 建树函数) INS_CHILD(y,i,x) (插入子树操作) 插入子树操作) DEL_CHILD(x,i) (删除子树操作) 删除子树操作) TRAVERSE (T) (遍历操作) 遍历操作) 遍历操作 CLEAR (T) (清空操作) 清空操作) 清空操作
普通树
将森林(若干棵树组成的集合 中各树之根 将森林 若干棵树组成的集合)中各树之根 若干棵树组成的集合 结点看成兄弟可得一个森林所对应的二叉树 A B C D E F G H I J A B C D J F E G H I B C D A E F G H I J
树的遍历 先根遍历: 先根遍历:先访问根 结点, 结点,再依次先根遍历 每棵子树: 每棵子树: ABD E GHIC F 后根遍历: 后根遍历:先依次后 根遍历每棵子树, 根遍历每棵子树,再访 问根结点: 问根结点: DGHIEBFCA D A B E I C F
数据结构第一章
1.3 算法的描述
(2) 空间效率 一个算法在执行过程中所占用的存储空间大小,称为空间效率或空 间复杂度。与时间复杂度类似,空间复杂度是指算法在计算机内执行 时临时占用的存储空间大小。算法的空间复杂度一般以数量级形式给 出。 提高算法空间复杂度的措施有原地工作和压缩存储。
1.3 .4算法的描述语言
1.3 算法的描述
例1.6 求下列4个程序段的语句频度 (a) i++; x=0; (b)for(i=1;i<=n;i++) x=x+1;
(c)for(i=1;i<=n;i++) for (j=1;j<=n;j++) x=x+1;
(d)for(i=1;i<=n;i++) for (j=1;j<=n;j++) for (k=1;k<=n;k++) x=x+1;
记录号 学号 980001 980002 姓名 吴承志 李淑芳 性别 男 女 专 业 计算机科学与技术 信息与计算科学 年级 98级 2001级 98级 9,10 1,2 2000级 6,7,8
1 2 3 4 5
990301
990302
刘 丽
张会友
女
男
数学与应用数学
信息与计算科学
99级
99级
98级
99级
数学与应用数学
2000级 2001级
2001级
姓名索引表
9
10
学生信息表
教学计划编排问题 案例2
问题: 如何通过计算机编排教学计划? 算法分析: 一个教学计划包含许多课程,在教学计划包含的许多课程之间,有些必须按规 定的先后次序进行,有些则没有次序要求。即有些课程之间有先修和后续 的关系,有些课程可以任意安排次序。这种各个课程之间的次序关系可用 一个称作图的数据结构来表示
青书学堂系统东北林业大学-数据结构所有答案
青书学堂系统东北林业大学-数据结构所有答案27问答题头指针和头结点在线性表的链式存储结构中的作用是什么本题150分答案是:标准答案:头指针具有标识作用,故常用头指针冠以链表的名字;头结点的数据域中不存储线性表的数据元素,其作用是为了对链表进行操作时,可以对空表、非空表的情况以及对开始结点进行统一处理。
26问答题交换排序的基本思想是什么本题150分答案是:标准答案:交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。
单选题在单链表n1C、 OmnD、 Om*n答案是:标准答案:D单选题线性表的顺序存储结构是一种的存储结构,线性表的链式存储结构是一种存储结构。
本题30分A、随机存取B、顺序存取C、索引存取D、散列存取答案是:标准答案:A单选题数据结构只是研究数据的逻辑结构和物理结构,这种观点。
本题30分A、正确B、错误C、前半句对,后半句错D、前半句错,后半句对单选题数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要。
本题30分A、低B、高C、相同D、不好说答案是:标准答案:B单选题算法分析的主要方法。
本题30分A、空间复杂度和时间复杂度B、正确性和简明性C、可读性和文档性D、数据复杂性和程序复杂性答案是:标准答案:A单选题数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为。
本题30分A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构答案是:标准答案:C单选题某班级的学生成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那么下面关于数据对象、数据元素、数据项描述正确的是本题30分A、某班级的学生成绩表是数据元素,90分是数据项B、某班级答案是:标准答案:C单选题数据结构这门学科是针对什么问题而产生的本题30分A、针对非数值计算的程序设计问题C、数值计算与非数值计算的问题都针对D、两者都不针答案是:标准答案:A22问答题顺序查找的基本思想是什么本题150分答案是:标准答案:顺序查找是一种最简单的查找方法。
数据结构与算法东北林业大学 数据结构演示文稿.ppt
在类定义中包括私有和公用两种性质的声明
二、BST上的搜索
3、递归算法 查找算法:在指针 t 所指的二叉排序树上查找其关键字等
于给定值K的记录。若查找成功,返回结点位置指针,否则返 回空指针 ( 教材第232页)。
BiTree SearchBST (BiTree T,KeyType key) { if (!T || T->data.key==key) return T; else if (key <T -> data.key) return SearchBST (T -> lChild,key); else if (key >T -> data.key) return SearchBST (T -> rChild,key); }
在有序表 r 中折半查找关键字等于 K 的记录
Int Search_Bin(SSTable ST, keytype key)
low =1; hig=ST.length; while (low=hig){
mid = (low+hig )/2; switch{ case Key>ST.elem[mid] : low = mid+1; case Key==ST.elem[mid] : return mid; case Key<ST.elem[mid] : hig := mid-1; } } return 0; };// binsrch
即搜索过程中给定值与数据集合中对象的关键字的 平均比较次数。
基本操作:
Creat(ST,n), Search(ST,K), Traverse(ST)
9.1.1 顺序表的查找
typedef struct { ElemType *elem; int length; } SSTable;
数据结构与算法-东北林业大学 第十章排序
快速排序 通过一趟排序将待排记录整理成分段有序, 通过一趟排序将待排记录整理成分段有序, 然后对每段递归实施同样的算法, 然后对每段递归实施同样的算法,直到整个序 列有序。 列有序。 一趟快速排序的一般过程是, 一趟快速排序的一般过程是,假定待排序 列为{r[s],r[s+1],•••,r[t]}, 首先任取一个记录 ( 通 列为 常取r[s]或r[t])作为支点 然后重新排列其余记 作为支点, 常取 或 作为支点 录,将所有关键字比它小的记录安置在它的位 置之前, 而将其余的记录安置在它的位置之后。 置之前 而将其余的记录安置在它的位置之后。 由此可得该支点记录所在位置作分界线, 由此可得该支点记录所在位置作分界线,将序 列分割成两个子序列。 列分割成两个子序列。
完整起泡排序方法:依次对 完整起泡排序方法:依次对r[1..n]中的前面 中的前面 n个记录、前面 n-1个记录、•••、前面 个记录实 个记录、 个记录、 前面2个记录实 个记录 个记录 施一趟起泡排序,即可得到有序的r[1..n]。若在 施一趟起泡排序,即可得到有序的 。 某趟起泡排序中没有交换过记录, 某趟起泡排序中没有交换过记录 则可提前结束 整个起泡排序。 整个起泡排序。 初始状态:49, 38, 65, 97, 76, 13, 27, 49 初始状态: 趟结果: 第1趟结果: 38, 49, 65, 76, 13, 27, 49, 97 趟结果 趟结果: 第2趟结果: 38, 49, 65, 13, 27, 49, 76, 97 趟结果 趟结果: 第3趟结果: 38, 49, 13, 27, 49, 65, 76, 97 趟结果 趟结果: 第4趟结果: 38, 13, 27, 49, 49, 65, 76, 97 趟结果 趟结果: 第5趟结果: 13, 27, 38, 49, 49, 65, 76, 97 趟结果 趟结果: 第6趟结果: 13, 27, 38, 49, 49, 65, 76, 97 趟结果
东北林业大学数据结构(A)2005-2006答案
东北林业大学2005-2006学年第二学期考试试题考试科目:数据结构(A)评分标准及参考答案一、单项选择题(在每个小题四个备选答案中选出一个正确答案,填在题末的括号中)(本大题共10小题,每小题1.5分,总计10分)(选对1个题给1.5分,选错1个题不给分)1、从逻辑上可以把数据结构分为()两大类。
A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构答案(C)2、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表答案( A )3、循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是( )。
A.(rear-front+m)%mB. rear-front+1C. rear-front-1D. rear-front答案( A )4、串的长度是指()A.串中所含不同字母的个数 B.串中所含字符的个数C.串中所含不同字符的个数 D.串中所含非空格字符的个数答案( B)5、设广义表L=((a,b,c)),则L的长度和深度分别为()。
A. 1和1B. 1和3C. 1和2D. 2和3答案(C)6、二叉树的先序遍历和中序遍历如下:先序遍历:EFHIGJK;中序遍历: HFIEJKG 。
该二叉树根的右子树的根是:( )A. EB. FC. GD. H答案( C )7、深度为h的满m叉树的第k层有()个结点。
(1=<k=<h)A.m k-1 B.m k-1 C.m h-1 D.m h-1答案(A)8、关键路径是事件结点网络中()。
A.从源点到汇点的最长路径 B.从源点到汇点的最短路径C.最长回路 D.最短回路答案(A)9、散列文件使用散列函数将记录的关键字值计算转化为记录的存放地址,因为散列函数是一对一的关系,则选择好的()方法是散列文件的关键。
2001级数据结构试题答案
计算机2001级数据结构试题参考答案一.(10分,每题1分)1.C 2.D 3.A 4.B 5.B 6.D 7.D 8.A 9.B 10。
C 二.(20分,每题2分) 1. 先(前)序 、中序2. Q->next->prior=s 3. 6 14. EF-G*ABC-D*/+ 5. 11406. MID – 1 ,R[MID].KEY==K 或l>h 7. 第I 列非零元素之和(∑aji )、第I 行非零元素之和(∑aij ) 8. 9. Lq->front==lq->rear 10. 动态查找表 三、应用题(共40分) 1.(4分)先:A BCD EF GH 中:CB DAE GHF 后:C DBHG FEA 2.(6分)其连通分量为:其广度优先搜索序列为: (1)V2(2)V1,V4,V3,V5 3. (6分)其哈夫曼树为: 2(C ):00000 3(F ):00001 6(D ):0001 7(A ):0010 10(H ):0011 32(E ):01 19(B ):10 21(G ):11所以其带权路径长为:wpl=2*5+3*5+6*4+7*4+10*4+ 32*2+19*2+21*2=261权值为10的结点层次为5104060 28 3221117 12 35 6 VVVV V AB EC D GFH4.(6分)设该树有n 个结点,树有 n0个结点。
则 n=n0+n1+n2+….. +n m (1) 又因为树中的结点数等于其分支数加1。
所以,n-1=n1+2n2+3n3+…+mn m (2) 由(1)、(2)得: n0=n2+2n3+3n4+…(m-1)n m 5153 246.(6分)7.(6分)push(‘A’)、push(5)、push(‘B’)、pop(‘A’)、pop(5)、pop(‘B’) 得:B 5 A31211515431111 525411 3115254311 115254111135254312451511 V VV V VVpush(‘A’)、pop(‘A’)、push(5)、pop(5)、push(‘B’)、pop(‘B’) 得:A 5 B push(‘A’)、pop(‘A’)、push(5)、push(‘B’)、pop(‘B’)、pop(5) 得:A B 5四.(20分)1.(8分)假设此单链表是带头结点的typedef struct node{datatype data;struct node * next;}node, *link;int find_same(link head, datatype k) { link p;int x;p=head->next;while(p!=NULL){ if(p->data==k)x++;p=p->next;}return x;}2.(6分)typedef struct node {datatype data;struct node * lchild,* rchild;}node , * bitreptr;int count_leaf(bitreptr root){ int x, top;bitreptr s[100];bitreptr p;top=0; x=0;top++;s[top]=root;do{p=s[top];top--;if(p->lchild==NULL&&p->rchild==NULL)x++;else{if(p->lchild!=NULL){top++; s[top]=p; }if(p->rchild!=NULL){ top++;s[top]=p; } }}while(top>0);return x;}3.(6分)#define VexNum 20typedef struct node {int adjvex;struct node *nextarc;}arcnode;typedef struct node1{vertextype data;arcnode * firstarc;} vnode,adjlist[VexNum];typedef struct {adjlist vertices;int vexnum,arcnum;}graph;typedef struct{int in;int out;}dd;void qcdrd(graph g, dd d[ ]){ int I,j; arcnode *p;for(I=0;I<g.vexnum;I++){d[I].in=0;d[I].out=0;}for( I=0;I<g.vexnum;I++){ p=g.vertices[I].firstarc;while(p!=NULL){j=p->adjvex;d[I].out=d[I].out+1;d[j].in=d[j].in+1;p=p->nextarc;} } }。
2001年数据结构试题参考答案
2001年《数据结构》试题参考答案
1、参考答案如下:
① q = p->next; p->next = q->next; delete q;
② q->next = p->next; p->next = q;
每小题5分,共计10分
每小题10分,共计20分
3、参考答案如下:
void PreOrderTraverse( BiTree T )
{
if( T ){
Visit( T );
PreOrderTraverse( T->lchild );
PreOrderTraverse( T->rchild );
}
}
略
共10分
10 7
构造哈夫曼树10分,构造哈夫曼编码5分,共计15分。
若哈夫曼树有重大错误,哈夫曼编码不给分
过程描述:
① 按拓扑序计算各顶点的最早发生时间ve ; ② 按逆拓扑序计算各顶点的最迟发生时间vl ; ③ 计算各个活动(弧)的最早和最迟开始时间;
④ 最早和最迟开始时间相同的活动即构造关键路径; 计算过程10分,过程描述5分,共计15分。
6、 参考答案如下: 快速排序:
建堆过程:
排序过程:
排序完毕
快速排序过程15分,堆排序过程15分,共计30分。
计算机专业基础综合数据结构排序历年真题试卷汇编6_真题-无答案
计算机专业基础综合数据结构(排序)历年真题试卷汇编6(总分108,考试时间90分钟)1. 单项选择题1. 某内部排序方法的稳定性是指____。
【南京理工大学1997年】A. 该排序算法不允许有相同的关键字记录B. 该排序算法允许有相同的关键字记录C. 平均时间为O(nlogn)的排序方法D. 以上都不对2. 若要求尽可能快地对序列进行稳定的排序,则应选____。
【北京邮电大学2001年】A. 快速排序B. 归并排序C. 冒泡排序D. 根排序3. 下列排序方法中,____是稳定的排序方法。
【北方交通大学2001】A. 直接选择排序B. 二分法插入排序C. 希尔排序D. 快速排序4. 对有n个记录的表做直接插入排序,在最好情况下,需比较____次关键字。
【华中科技大学2006年】A. n-1B. n+1C. n/2D. n(n-1)/25. 对n个不同的数据利用冒泡法从小到大排序,在下列哪种情况下元素交换的次数最多____。
【北京交通大学2007年】A. 从大到小排列好的B. 从小到大排列好的C. 元素无序D. 元素基本有序6. 采用简单选择排序,比较次数与移动次数分别为____。
【南京理工大学2000年】A. O(n),O(10gn)B. O(logn),O(n*n)C. O(n*n),O(n)D. O(nlogn),O(n)7. 希尔排序属于____。
【太原科技大学2006年】A. 插入排序B. 交换排序C. 选择排序D. 归并排序8. 对序列{15,9,7,8,20,一1,4}用希尔排序方法排序,经一趟后序列变为{15,一1,4,8,20,9,7}则该次采用的增量是____。
【南京理工大学1999年】A. 1B. 4C. 3D. 29. 有些排序算法在每趟排序过程中,都会有一个元素被放置到其最终位置上,下列算法不会出现此种情况的是____。
【北京交通大学2005年】A. 希尔排序B. 堆排序C. 冒泡排序D. 快速排序10. 从未排序序列中选择一个元素,该元素将当前参加排序的那些元素分成前后两个部分,前一部分中所有元素都小于等于所选元素,后一部分中所有元素都大于等于所选元素,而所选元素处在排序的最终位置。
数据结构zl-第6章树4-1
E K
有序树——结点各子树从左至右有序,不能互换 结点各子树从左至右有序, 有序树 结点各子树从左至右有序 左为第一) (左为第一) 无序树——结点各子树可互换位置. 结点各子树可互换位置. 无序树 结点各子树可互换位置
15
A
2.
若干术语
E K
B F L
C G H M
D I J
双亲——即上层的那个结点 直接前驱 即上层的那个结点(直接前驱 双亲 即上层的那个结点 直接前驱) 孩子——即下层结点的子树的根 直接后继 即下层结点的子树的根(直接后继 孩子 即下层结点的子树的根 直接后继) 兄弟——同一双亲下的同层结点(孩子之间互称兄弟) 同一双亲下的同层结点( 兄弟 同一双亲下的同层结点 孩子之间互称兄弟) 堂兄弟——即双亲位于同一层的结点(但并非同一双亲 即双亲位于同一层的结点( 堂兄弟 即双亲位于同一层的结点 ) 祖先——即从根到该结点所经分支的所有结点 祖先 即从根到该结点所经分支的所有结点 子孙——即该结点下层子树中的任一结点 子孙 即该结点下层子树中的任一结点
讨论3:树的链式存储方案应该怎样制定? 讨论 :树的链式存储方案应该怎样制定? 链式存储方案应该怎样制定
可用多重链表:一个前趋指针, 个后继指针. 可用多重链表:一个前趋指针,n个后继指针. 细节问题:树中结点的结构类型样式该如何设计? 细节问题:树中结点的结构类型样式该如何设计? 即应该设计成"等长"还是"不等长" 即应该设计成"等长"还是"不等长"? 缺点:等长结构太浪费(每个结点的度不一定相同); 缺点:等长结构太浪费(每个结点的度不一定相同); 不等长结构太复杂(要定义好多种结构类型). 不等长结构太复杂(要定义好多种结构类型). 解决思路:先研究最简单,最有规律的树,然后设法把一般 解决思路:先研究最简单,最有规律的树, 的树转化为简单树. 的树转化为简单树.
数据结构复习-学生版本
{pc->next=pa;pc=pa;pa=pa->next;}
else {pc->next=pb;pc=pb;pb=pb->next;}
}
pc->next=pa?pa:pb;//插入剩余段
free(Lb);//释放 Lb 的头结点
}//MergeList_L
第三章 栈和队列
1. 队列操作的原则是
E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)}
对该图进行深度优先遍历,得到的顶点序列正确的是
D
A)a,b,e,c,d,f
B)a,c,f,e,b,d
C)a,e,b,c,f,d
D)a,e,d,f,c,b
3 有向图 G 如下 :
b
6
18
e 9
8
a
2
g
c
12
4
10
//已知线性链表 La 和 Lb 的元素按值非递减排列
//归并 La 和 Lb 得到新的线链性表 Lc,Lc 的元素也按值非递减排列。
pa=La->next; pb=Lb->next; Lc=pc=La; //用 La 的头结点作为 Lc 的头结点
while(pa && pb){
If (pa->data<=pb->data)
6. 有 n 个结点的二叉树,用二叉链表作为存储结构,空指针域有
个 n+1
7. 1). 写出前序遍历二叉树的递归算法
2). 如图二叉树, 给出按中序, 后序遍历树时的访问次序.
3).画出其先序线索树
E
/\
B
F
/\
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构试题
(考试时间120分钟)
——————————————————————————————————————
一、单项选择题:(总分10分,每小题1分)
1、在顺序存储的线性表(a1,a2,-----,a n)中,删除任意结点时所需移动结点的平均次数为( c )。
A.n B n/2 C
2
A B.
C
3、某二叉树的前序遍历结点顺序为:ABCDEFG,中序遍历结点顺序为:CBDAFGE,则后续遍历结点的顺序为:( a )。
A.CDBGFEA B.CDGFEAB C.CDBAGFE D.CDBFAGE
4、6.在一棵高度为H的满三叉树中,结点总数为(b )。
A.3H - 1 B.(3H – 1)/2 C.(3H - 1 )/3 D.3H
5、设N阶方阵A是一对对称矩阵,为节省存储空间,将其下三角(包括对角线)以行序为主序存储在一维数组B[1----N(N+1)/2]中,则对任一上三角元素,在一维数组B中的下标位置K是()
A I(I-1)/2+j
B j(j-1)/2+i
C I(j-1)2+1
D j(I-1)/2+1
6、用孩子兄弟链表表示一棵树,若要找到结点X的第5个孩子,只要先找到X的第一个孩子,然后( d )
A 从孩子域指针连续扫描5个结点即可B从孩子域指针连续扫描4个结点即可
C从兄弟域指针连续扫描5个结点即可D从兄弟域指针连续扫描4个结点即可
7、设输入序列为a,b,c,d,借助一个栈得到的输出序列不可能是(d )。
A.a,b,c,d B.d,c,b,a C.a,c,d,b D.d,a,b,c
8、一个无向连通图的生成树是含有该连通图的全部顶点的( a )“
A 极小连通子图
B 极小子图
C 极大连通子图
D 极大子图
9、有12个节点的平衡二叉树的最大深度是( b )。
A .4
B .5
C .6
D .3
10、对于静态表顺序查找算法,若在表头设置岗哨,则正确的查找方式( c )
A 从第0个元素往后查找该数据元素
B 从第1个元素往后查找该数据元素
C 从第N 个元素开始往前查找该数据元素
D 与查找顺序无关
二、填空题(每题2分,共20分)
1.一般树的遍历结果和它所对应的二叉树的遍历结果之间有一定的对应关系:一般树的前序遍历序列和它所对应二叉树的 先序 遍历序列一致,一般树的后
2、设某双链表的结点形式为
Q 所指结点(中间结点)的后面插入一个新结点,则需执行下述语句段:
s->prior=q; s->next=q->next ; ____________ ;q->next=s:
3、对50个记录
进行折半查找,最多比较次数和最少比较次数分别是 6 1 。
4、设有一中缀表达式((E-F )*G+A/(B-C ))*D ,其等价的后缀表达式是 。
5、设二维数组A[10..20,5..10]按行优先存储,每个元素占4个存储单元,A[10,5]的存储地址为1000,则A[15,10]的存储地址为 。
6、设有满足二分查找法要求的查找表R (键值按递增顺序排列),查找区间为[l ,h],要查找的键值为K ,首先被比较元素的位置为mid=(l+h) DIV 2,若R[MID].key >K ,则h 改为( );二分查找的结束条件是( )。
7.设有向图G 有n 个顶点v1,v2,v3,…vn ,它的邻接矩阵为A ,顶点vi 的入度ID (vi )为( );顶点vi 的出度OD (vi )为( ).
8.设一个链栈的栈顶指针为ls ,栈中结点格式为
( ),如果栈不空,则退栈操作为p=ls ; ( );free(p)。
9.设链队列lq 中结点的格式为 lq->front ,尾指针为lq->rear ,队列为空的条件( )。
10、查找表分为静态查找表和动态查找表两种,二叉排序树属于 。
三、应用题(共40分)
1.已知二叉树的先序、中序和后序序列分别如下,但其中有一些已模糊不清,构造出该二叉树。
先序序列: _____BC_________E____GH
中序序列: C______DA_________GHF
后序序列: ____DB_________FEA
2.已知无向图G的邻接表如下,请画出其所有的连通分量,并写出其按广度优先搜索各连通分量的访问序列。
3.假设用于通信的电文仅由A-H八个字母组成,字母在电文中出现的频率分别为7,19,2,6,32,3,21,10。
试为这八个字母设计哈夫曼编码。
带权路径长度是多少?权值为10的结点层次是多少?
4.一棵树有度为1的结点n1个,度为2的结点n2个,…,度为m的结点n m个,问它有多少个叶结点?
5.请对无向带权图,写出他的临接矩阵,并按朴里母算法求其最小生成树。
6.给定无序序列{30,19,26,48,59,13,52,11},试写出建初始堆的过程。
7.如图所示,在栈的输入端元素的输入顺序为A,5,B,求出端可得到的以字母开头的所有输出序列,并给出栈的操作过程(用push表示进栈,pop表示出栈)
A 5 B
四、设计题(共20分)
1.某带头结点的单链表的结构说明如下:
typedef struct nodel
{
int data;
struct nodel *next
}node:
试设计一个算法,计算该单链表中数据域的值为K的结点个数。
设单链表的头指针为HEAD。
(6分)
2.给定一棵用二叉链表表示的二叉树,其根指针为ROOT,试编写求此二叉树的叶子数目的非递归算法。
(8分)
3.已知一个有向图的邻接表,试编写一个算法求每个结点的出度和入度。
(6分)。