数据结构考试题1

合集下载

《数据结构》期末考试复习题 第1章 绪论

《数据结构》期末考试复习题 第1章 绪论

第1章绪论一、选择题1. 算法的计算量的大小称为计算的()。

【北京邮电大学2000 二、3 (20/8分)】A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于()【中科院计算所 1998 二、1 (2分)】A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(1),它必须具备(2)这三个特性。

(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性【南京理工大学 1999 一、1(2分)【武汉交通科技大学 1996 一、1( 4分)】4.一个算法应该是()。

【中山大学 1998 二、1(2分)】A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C.5. 下面关于算法说法错误的是()【南京理工大学 2000 一、1(1.5分)】A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是()【南京理工大学 2000 一、2 (1.5分)】(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为()两大类。

【武汉交通科技大学 1996 一、4(2分)】A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是()。

【北方交通大学 2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D. 栈9.以下数据结构中,哪一个是线性结构()?【北方交通大学 2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下那一个术语与数据的存储结构无关?()【北方交通大学 2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为()【北京工商大学 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为正整数,则最后一行的语句频度在最坏情况下是()A. O(n)B. O(nlogn)C. O(n3)D. O(n2)【南京理工大学1998一、1(2分)】13.以下哪个数据结构不是多型数据类型()【中山大学 1999 一、3(1分)】A.栈 B.广义表 C.有向图 D.字符串14.以下数据结构中,()是非线性数据结构【中山大学 1999 一、4】A.树 B.字符串 C.队 D.栈15. 下列数据中,()是非线性数据结构。

西北民族大学数据结构题库(1)

西北民族大学数据结构题库(1)
20.是对客观事物的符号表示,能被计算机处理的符号总称。
21.数据的存储结构通常包括数据的_________存储和_________存储。
22.数据的逻辑结构可形式地用一个二元组S=(D,R)来表示,其中D是__________,R是__________。
23.所有插入和删除都在表的一端进行的线性表称为。
C 、两个串的长度相等,并且两个串包含的字符相等。
D、 两个串的长度相等,并且对应位置上的字符相等。
19.已知广义表L=(a,(b,c)),其表头是( )。
A.aB.bC.(a,b)D.(c,d)
20.广义表((a,b),c,d)的表尾是( )。
A.aB.bC.(a,b)D.(c,d)
21.树最适合用来表示( )。
34.设广义表L=(a,(a,b),d,e,((i,(j)),k)),则L的深度是,表头为,表尾是。
35.空格串是指由__________符所组成的字符串。
36.数据结构包括_________三个方面。
37.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应该采用__________存储结构
D.77
5.无向图G=(V,E),其中:V={(a,b),(a,e),(a,c),(b,e),(e,f),(f,d),(e,d)},在下面的5个序列中,符合深度优先遍历的序列有多少?()
(1)a e b d f c(2)a c f d e b(3)a e d f c b(4)a e f d c b(5)a e f d b c
C.p->next=p->next
D.p=p->next->next
3.设高度为15的二叉树上只有度为0和1的结点,则此类二叉树中所包含的结点数至少为()。

数据结构导论自考题-1_真题-无答案

数据结构导论自考题-1_真题-无答案

数据结构导论自考题-1(总分100,考试时间90分钟)一、单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的。

1. 算法的便于阅读和理解的特性称为( )A.正确性 B.易读性C.健壮性 D.时空性2. 给定有n个元素,建立一个有序单链表的时间复杂度为( )A.O(1) B.O(n)C.O(n2) D.O(nlog2n)3. 在双链表中某结点(已知其地址)前插入一新结点,其时间复杂度为( )A.O(n) B.O(1)C.O(n2) D.O(log2n)4. 顺序栈s中top为栈顶指针,指向栈顶元素所在的位置,elem为存放栈的数组,则元素e 进栈操作的主要语句为( )A.s.elem[top]=e;s.top=s.top+1;B.s.elem[top+1]=e;s.top=s.top+1;C.s.top=s.top+1;s.elem[top+1]=e;D.s.top=s.top+1;s.elem[top]=e;5. 一个数组的第一个元素的存储地址是100,每个元素占2个存储单元,则第5个元素的存储地址是( )A.110 B.108C.100 D.1206. 已知某完全二叉树采用顺序存储结构,结点数据的存放顺序依次为A、B、C、D、E、F、G、H,该完全二叉树的后序遍历序列为( )A.HDBEFCGA B.HDEBFGCAC.DHEBFGACA D.DEHBFGCA7. 除根结点外,树上每个结点( )A.可有任意多个孩子、一个双亲 B.可有任意多个孩子、任意多个双亲C.可有一个孩子、任意多个双亲 D.只有一个孩子、一个双亲8. 一棵完全二叉树上有1001个结点,其中叶子结点的个数是( )A.250 B.500C.501 D.5059. 设有6个结点的无向图,若要确保此图是一个连通图,则至少应有边的条数是( )A.5 B.6C.7 D.810. 在含有n个顶点e条边的无向图的邻接矩阵中,零元素的个数为( )A.e B.2eC.n2-e D.n2-2e11. 设有无向图G=(V,E)和(G'=(V',E'),如G'为G的生成树,则下面说法不正确的是( )A.G'为G的子图 B.G'为G的连通分量C.G'为G的极小连通子图且V'=V D.G'是G的无环子图12. 利用逐点插入法建立序列(50,72,43,85,75,20,35,45,65,30)对应的二叉排序树以后,查找元素35要进行元素间比较的次数是( )A.4次 B.5次C.7次 D.10次13. 采用二分查找法,若当前取得的中间位置MID的元素值小于被查找值,则表明待查元素可能在表的后半部分,下次查找的起始位置通常应( )A.从MID/2位置开始 B.从MID位置开始C.从MID-1位置开始 D.从MID+1位置开始14. 当待排序序列中记录数较少或基本有序时,最适合的排序方法为( )A.直接插入排序法 B.快速排序法C.堆排序法 D.归并排序法15. 一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为( )A.(38,40,46,56,79,84) B.(40,38,46,79,56,84)C.(40,38,46,56,79,84) D.(40,38,46,84,56,79)二、填空题16. 算法的空间性能是指算法需要的______。

数据结构复习模拟题1

数据结构复习模拟题1

第3章栈和队列一选择题1. 对于栈操作数据的原则是( B. 后进先出)。

2. 在作进栈运算时,应先判别栈是否(①B. 满),在作退栈运算时应先判别栈是否(②A. 空)。

当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为(③B. n)。

为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时,应将两栈的 (④D. 栈底)分别设在这片内存空间的两端,这样,当(⑤C. 两个栈的栈顶在栈空间的某一位置相遇)时,才产生上溢。

3. 一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i (1<=i<=n)个元素是(B. n-i+1)。

4. 若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是(D. 不确定的)。

5. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pN,若pN是n,则pi是(D. 不确定)。

6. 有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?(C. 3 4 6 5 2 1)A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 4 1 5 67. 设栈的输入序列是1,2,3,4,则(D. 4,3,1,2,)不可能是其出栈序列。

A. 1,2,4,3,B. 2,1,3,4,C. 1,4,3,2,D. 4,3,1,2,E. 3,2,1,4,8. 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是(B.5 4 1 3 2)。

9. 设一个栈的输入序列是 1,2,3,4,5,则下列序列中,是栈的合法输出序列的是(D. 3 2 1 5 4)。

10. 某堆栈的输入序列为a, b,c ,d,下面的四个序列中,不可能是它的输出序列的是(D. d, c,a,b)。

A. a,c,b,dB. b, c,d,aC. c, d,b, aD. d, c,a,b11. 设abcdef以所给的次序进栈,若在进栈操作时,允许退栈操作,则下面得不到的序列为(D. cabdef)。

数据结构习题答案一

数据结构习题答案一

数据结构习题答案一评论:0 条查看:40 次zjw313014322发表于2009-04-21 16:25一、选择题1. 下面说法错误的是 C 。

(1)算法原地工作的含义是指不需要任何额外的辅助空间。

(2)在相同的规模n下,复杂度O(n)的撒在时间上总是优于复杂度O(2n)的算法。

(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界。

(4)同一个算法,实现语言的级别越高,执行效率越低。

A、(1)B、(1)(2)C、(1)(4)D、(3)2. 一个递归算法必须包括 B 。

A、递归部分B、终止条件和递归部分C、迭代部分D、终止条件和迭代部分3. 数据的 C 包括查找、插入、删除、更新、排序等操作类型。

A、存储结构B、逻辑结构C、基本运算D、算法描述4. 在数据结构中,从逻辑上可以把数据结构分成 C 。

A、动态结构和静态结构B、紧凑结构和非紧凑结构C、线性结构和非线性结构D、内部结构和外部结构5. 与数据元素本身的形式、内容、相对位置、个数无关的是数据的 C 。

A、存储结构B、存储实现C、逻辑结构D、运算实现6. 通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。

A、数据具有同一特点B、不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致C、每个数据元素都一样D、数据元素所包含的数据项的个数要相等7. 以下说法正确的是 D 。

A、数据元素是数据的最小单位B、数据项是数据的基本单位C、数据结构是带有结构的各数据项的集合D、一些表面上很不相同的数据可以有相同的逻辑结构8. 以下说法错误的是 A 。

A、程序设计的实质是数据处理B、数据的逻辑结构是数据的组织形式,基本运算规定了数据的基本操作方式C、运算实现是完成运算功能的算法或这些算法的设计D、数据处理方式总是与数据的某种相应表示形式相联系,反之亦然9. 下列程序段的时间复杂度为 B 。

x=n;y=0;while (x>=(y+1)*(y+1))y=y+1;A、O(n)B、O(n1/2)C、O(1)D、O(n2)10. 下列叙述中有关好的编程风格的正确描述是 C 。

数据结构练习题1

数据结构练习题1

数据结构练习题1⼀、单项选择题1.若⽤⼀个⼤⼩为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除⼀个元素,再加⼊两个元素后,rear和front的值分别为多少?( )A. 1和 5B. 2和4C. 4和2D. 5和1⼤⼩为6的数组:下标从0-5;从前⾯出队,从后⾯⼊队front(前⾯)=3rear(后⾯)=0当出队列中删除⼀个元素,也就是出队,即front+1:=4再插⼊两个元素,即rear+2= 2【注】循环队列中,由于⼊队时尾指针向前追赶头指针;出队时头指针向前追赶尾指针,造成队空和队满时头尾指针均相等。

因此,⽆法通过条件front==rear来判别队列是"空"还是"满"。

2.循环队列A[0..m-1]存放其元素值,⽤front和rear分别表⽰队头和队尾,则当前队列中的元素数是( )。

A. (rear-front+m)%mB. rear-front+1C. rear-front-1D. rear-front3.for(i=0;ifor(j=0;jA[i][j]=i*j;上⾯算法的时间复杂度为( )A.O(m2)B.O(n2)C.O(m×n)D.O(m+n)4.设h是指向⾮空带表头结点的循环链表的头指针,p是辅助指针。

执⾏程序段p=h;while (p->next->next!=h)p=p->next;p->next=h;后(其中,p->next为p指向结点的指针域),则( )A. p->next指针指向链尾结点B. h指向链尾结点C. 删除链尾前⾯的结点D. 删除链尾结点5.假设带头结点的单向循环链表的头指针为head,则该链表为空的判定条件是()A.head= =NULLB.head–>next= =NULLC.head!=NULLD.head–>next= =head6. 设顺序表有19个元素,第⼀个元素的地址为200,且每个元素占3个字节,则第14个元素的存储地址为( )A.236B.239C.242D.2457. 若⼀棵⼆叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A .9B .11C .15D .不确定8. n 个结点的线索⼆叉树上含有的线索数为()A .2nB .n -lC .n +lD .n9. 设有⼀个栈,按A 、B 、C 、D 的顺序进栈,则可能为出栈序列的是( )A.DCBAB.CDABC.DBACD.DCAB10. 归并排序中,归并的趟数是( )。

数据结构模拟题1分析

数据结构模拟题1分析

数据结构试题1总共:15题,共100.0分一、单选(共8小题,24.0分)1.向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动______个元素。

(3分)A.8B.63.5C.63D.72.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,则A[4][5]在()位置,(10)表明用10进数表示。

(3分)A.672(10)B.626(10)C.709(10)D.724(10)3.一个有序顺序表有255个对象,采用顺序搜索法查表,平均搜索长度为________。

(3分)A.128B.127C.126D.2554.含5个结点(元素值均不相同)的二叉顺序搜索法查表,平均搜索长度为_______。

(3分)A.54B.42C.36D.655.在分析折半搜索的性能时常加入失败结点,即外结点,从而形成扩充的二叉树。

若设失败结点i所在层次为I i,那么搜索失败到达失败所做的数据比较次数是__________。

(3.0分)A.I i+1 B.I i+2C.I i-1D.I i6.设有一个含200个表项的散列表,用线性探查法解决冲突,按关键码查询时找到一个表项的平均控查次数不超过1.5,则歼列存储空间应容纳________个表项。

(设搜索成功的平均搜索长度为s m=(1+1/(1-α))/2,其中α为装填因子)A.400B.526C.624D.6767.n个顶点的连通图至少有______条边。

(3.0分)A.n-1B.nC.n+1D.08.一个二叉树按顺序方式存储在一个一维数组中,如图01234567891011121314二、简答(共4小题,46.0分)1.如右所示的连通图,请画出:(1)以顶点①为根的深度优先生成树;(2)如果有关节点,请找出所有的关节点。

2.设有13个初始归并段,其长度分别为28,16,37,42,5,9,13,14,20,17,30,12,18。

国家开放大学电大考试《数据结构(本)》形成性考核册作业1-4原题及答案

国家开放大学电大考试《数据结构(本)》形成性考核册作业1-4原题及答案

作业1 (本部分作业覆盖教材第1-2章的内容)一、单项选择题1.在数据结构中,从逻辑上可以把数据结构分为(C )。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部机构2.下列说法中,不正确的是( D )。

A.数据元素是数据的基本单位B.数据项是数据中不可分割的最小可标识单位C.数据可有若干个数据元素构成D.数据项可由若干个数据元素构成3.一个存储结点存储一个( B )。

A.数据项 B.数据元素C.数据结构 D.数据类型4.数据结构中,与所使用的计算机无关的是数据的( C )。

A.存储结构 B.物理结构C.逻辑结构D.物理和存储结构5.下列的叙述中,不属于算法特性的是( D )。

A.有穷性 B.输入性C.可行性 D.可读性6.算法分析的目的是( C )。

A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 D.分析算法的易懂性和文档性7.数据结构是一门研究计算机中( B )对象及其关系的科学。

A.数值运算 B.非数值运算C.集合 D.非集合8.算法的时间复杂度与( C )有关。

A.所使用的计算机 B.与计算机的操作系统C.与算法本身 D.与数据结构9.设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),则移动元素个数为( A )。

A.n-i+1 B.n-i C.n-i-1 D.i 10.设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为( B )。

A.n-i+1 B.n-i C.n-i-1 D.i 11.在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句( C )。

A.p=q->next B.p->next=q C.p->next=q→next D.q->next=NULL12.在一个单链表中p所指结点之后插入一个s所指的结点时,可执行( D )。

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

要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。

每张答题纸都要写上姓名和学号。

一、单项选择题(每小题1.5分,共计30分)1。

数据结构是指。

A. 一种数据类型B. 数据的存储结构C。

一组性质相同的数据元素的集合D。

相互之间存在一种或多种特定关系的数据元素的集合2. 以下算法的时间复杂度为。

void fun(int n){int i=1;while (i<=n)i++;}A。

O(n) B. O(n)C。

O(nlog2n)D。

O(log2n)3. 在一个长度为n的有序顺序表中删除元素值为x的元素时,在查找元素x时采用二分查找,此时的时间复杂度为 .A。

O(n)B。

O(nlog2n)C。

O(n2) D。

O(n)4. 在一个带头结点的循环单链表L中,删除元素值为x的结点,算法的时间复杂度为。

A. O(n)B. O(n)C. O(nlog2n)D. O(n2)5. 若一个栈采用数组s[0.。

n—1]存放其元素,初始时栈顶指针为n,则以下元素x进栈的正确操作是。

A.top++;s[top]=x;B.s[top]=x;top++;C.top-—;s[top]=x; B.s[top]=x;top--;6。

中缀表达式“2*(3+4)-1”的后缀表达式是,其中#表示一个数值的结束。

A. 2#3#4#1#*+—B. 2#3#4#+*1#-C. 2#3#4#*+1#—D. —+*2#3#4#1#7. 设环形队列中数组的下标为0~N—1,其队头、队尾指针分别为front和rear(front 指向队列中队头元素的前一个位置,rear指向队尾元素的位置),则其元素个数为。

A。

rear—front B. rear—front—1C. (rear-front)%N+1 D。

(rear—front+N)%N8。

若用一个大小为6的数组来实现环形队列,队头指针front指向队列中队头元素的前一个位置,队尾指针rear指向队尾元素的位置。

若当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为。

A. 1和5B. 2和4C. 4和2D. 5和19. 一棵深度为h(h≥1)的完全二叉树至少有个结点。

A. 2h-1B。

2hC。

2h+1 D。

2h—1+110。

一棵含有n个结点的线索二叉树中,其线索个数为。

A. 2n B。

n-1C。

n+1 D. n11。

设一棵哈夫曼树中有1999个结点,该哈夫曼树用于对个字符进行编码。

A. 999 B。

998C。

1000 D. 100112。

一个含有n个顶点的无向连通图采用邻接矩阵存储,则该矩阵一定是.A。

对称矩阵 B. 非对称矩阵C. 稀疏矩阵D. 稠密矩阵13. 设无向连通图有n个顶点e条边,若满足,则图中一定有回路。

A。

e≥n B。

e〈nC。

e=n-1 D。

2e≥n14. 对于AOE网的关键路径,以下叙述是正确的。

A。

任何一个关键活动提前完成,则整个工程一定会提前完成B. 完成整个工程的最短时间是从源点到汇点的最短路径长度C. 一个AOE网的关键路径一定是唯一的D。

任何一个活动持续时间的改变可能会影响关键路径的改变15. 设有100个元素的有序表,用折半查找时,不成功时最大的比较次数是.A. 25 B。

50C。

10 D. 716. 在一棵m阶B—树中删除一个关键字会引起合并,则该结点原有个关键字。

A. 1B. ⎡m/2⎤C. ⎡m/2⎤-1 D。

⎡m/2⎤+117. 哈希查找方法一般适用于情况下的查找.A。

查找表为链表B。

查找表为有序表C。

关键字集合比地址集合大得多D。

关键字集合与地址集合之间存在着某种对应关系。

18. 对含有n个元素的顺序表采用直接插入排序方法进行排序,在最好情况下算法的时间复杂度为。

A。

O(n)B。

O(nlog2n)C. O(n2) D。

O(n)19. 用某种排序方法对数据序列{24,88,21,48,15,27,69,35,20}进行递增排序,元素序列的变化情况如下:(1){24,88,21,48,15,27,69,35,20}(2){20,15,21,24,48,27,69,35,88}(3){15,20,21,24,35,27,48,69,88}(4){15,20,21,24,27,35,48,69,88}则所采用的排序方法是。

A。

快速排序 B. 简单选择排序C。

直接插入排序 D. 归并排序20。

以下序列是堆的是。

A. {75,65,30,15,25,45,20,10}B. {75,65,45,10,30,25,20,15}C. {75,45,65,30,15,25,20,10}D. {75,45,65,10,25,30,20,15}二、问答题(共4小题,每小题10分,共计40分)1. 如果对含有n(n〉1)个元素的线性表的运算只有4种:删除第一个元素;删除最后一个元素;在第一个元素前面插入新元素;在最后一个元素的后面插入新元素,则最好使用以下哪种存储结构,并简要说明理由.(1)只有尾结点指针没有头结点指针的循环单链表(2)只有尾结点指针没有头结点指针的非循环双链表(3)只有头结点指针没有尾结点指针的循环双链表(4)既有头结点指针也有尾结点指针的循环单链表2。

已知一棵度为4的树中,其度为0、1、2、3的结点数分别为14、4、3、2,求该树的结点总数n和度为4的结点个数,并给出推导过程.3. 有人提出这样的一种从图G中顶点u开始构造最小生成树的方法:假设G=(V,E)是一个具有n个顶点的带权连通无向图,T=(U,TE)是G的最小生成树,其中U是T的顶点集,TE是T的边集,则由G构造从起始顶点u出发的最小生成树T 的步骤如下:(1)初始化U={u}。

以u到其他顶点的所有边为候选边。

(2)重复以下步骤n—1次,使得其他n-1个顶点被加入到U中。

从候选边中挑选权值最小的边加入到TE,设该边在V—U中的顶点是v,将v加入U中.考查顶点v,将v与V—U顶点集中的所有边作为新的候选边。

若此方法求得的T是最小生成树,请予以证明.若不能求得最小边,请举出反例。

4. 有一棵二叉排序树按先序遍历得到的序列为:(12,5,2,8,6,10,16,15,18,20)。

回答以下问题:(1)画出该二叉排序树。

(2)给出该二叉排序树的中序遍历序列。

(3)求在等概率下的查找成功和不成功情况下的平均查找长度.三、算法设计题(每小题10分,共计30分)1. 设A和B是两个结点个数分别为m和n的单链表(带头结点),其中元素递增有序。

设计一个尽可能高效的算法求A和B的交集,要求不破坏A、B的结点,将交集存放在单链表C中.给出你所设计的算法的时间复杂度和空间复杂度。

2. 假设二叉树b采用二叉链存储结构,设计一个算法void findparent(BTNode *b,ElemType x,BTNode *&p)求指定值为x的结点的双亲结点p,提示,根结点的双亲为NULL,若在b中未找到值为x的结点,p亦为NULL。

3。

假设一个连通图采用邻接表G存储结构表示。

设计一个算法,求起点u到终点v 的经过顶点k的所有路径.四、附加题(10分)说明:附加题不计入期未考试总分,但计入本课程的总分。

假设某专业有若干个班,每个班有若干学生,每个学生包含姓名和分数,这样构成一棵树,如图1所示。

假设树中每个结点的name域均不相同,该树采用孩子兄弟链存储结构,其结点类型定义如下:typedef struct node{char name[50];//专业、班号或姓名float score;//分数struct node *child; //指向最左边的孩子结点struct node *brother;//指向下一个兄弟结点} TNode;完成以下算法:(1)设计一个算法求所有的学生人数。

(2)求指定某班的平均分。

图1 一棵学生成绩树“数据结构”考试试题(A)参考答案要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。

每张答题纸都要写上姓名和学号。

一、单项选择题(每小题1。

5分,共计30分)1。

D 2. A 3. A 4. A 5. C 6。

B 7. D 8。

B 9. A 10. C 11. C 12。

A 13. A 14. D 15。

D 16. C17。

D 18. A 19。

A 20. C二、问答题(共4小题,每小题10分,共计40分)1。

答:本题答案为(3),因为实现上述4种运算的时间复杂度均为O(1)。

【评分说明】选择结果占4分,理由占6分。

若结果错误,但对各操作时间复杂度作了分析,可给2~5分。

2。

答:结点总数n =n 0+n 1+n 2+n 3+n 4,即n =23+n 4,又有:度之和=n -1=0×n 0+1×n 1+2×n 2+3 ×n 3+4×n 4,即n =17+4n 4,综合两式得:n 4=2,n =25。

所以,该树的结点总数为25,度为4的结点个数为2。

【评分说明】结果为4分,过程占6分。

3。

答:此方法不能求得最小生成树.例如,对于如图5。

1(a)所示的带权连通无向图,按照上述方法从顶点0开始求得的结果为5。

1(b )所示的树,显然它不是最小生成树,正确的最小生成树如图5。

1(c )所示。

在有些情况下,上述方法无法求得结果,例如对于如图5。

1(d )所示的带权连通无向图,从顶点0出发,找到顶点1(边(0,1)),从顶点1出发,找到顶点3(边(1,3)),再从顶点3出发,找到顶点0(边(3,0))(a ) (d )(b ) (c )图1 求最小生成树的反例说明:只需给出一种情况即可。

【评分说明】回答不能求得最小生成树得5分,反例为5分。

若指出可求得最小生成树,根据证明过程给1~2分。

4。

答:(1)先序遍历得到的序列为:(12,5,2,8,6,10,16,15,18,20),中序序列是一个有序序列,所以为:(2,5,6,8,10,12,15,16,18,20),由先序序列和中序序列可以构造出对应的二叉树,如图2所示。

(2)中序遍历序列为:2,5,6,8,10,12,15,16,18,20。

(3)ASL成功=(1×1+2×2+4×3+3×4)/10=29/10。

ASL不成功=(5×3+6×4/11=39/11。

图2【评分说明】(1)小题占6分,(2)(3)小题各占2分。

三、算法设计题(每小题10分,共计30分)1. 设A和B是两个结点个数分别为m和n的单链表(带头结点),其中元素递增有序。

设计一个尽可能高效的算法求A和B的交集,要求不破坏A、B的结点,将交集存放在单链表C中。

相关文档
最新文档