数据结构试卷(二)及答案

合集下载

《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案第一部分:选择题(每题2分,共20分)1. 下面哪个数据结构是线性结构?A. 树B. 图C. 队列D. 网络流2. 下面哪个数据结构用于实现广度优先搜索算法?A. 栈B. 队列C. 散列表D. 堆3. 下面哪个数据结构用于实现深度优先搜索算法?A. 栈B. 队列C. 散列表D. 堆4. 下面哪个数据结构用于实现快速排序算法?A. 栈B. 队列C. 散列表D. 堆5. 下面哪个数据结构用于实现优先队列?A. 栈B. 队列C. 散列表D. 堆6. 下面哪个数据结构用于实现哈希表?A. 栈B. 队列C. 散列表D. 堆7. 下面哪个数据结构用于实现最小树算法?A. 栈B. 队列C. 散列表D. 堆8. 下面哪个数据结构用于实现拓扑排序算法?A. 栈B. 队列C. 散列表D. 堆9. 下面哪个数据结构用于实现最短路径算法?A. 栈B. 队列C. 散列表D. 堆10. 下面哪个数据结构用于实现并查集算法?A. 栈B. 队列C. 散列表D. 堆第二部分:填空题(每题2分,共20分)1. 链表是一种______数据结构。

2. 二叉树的节点最多有______个子节点。

3. 堆是一种特殊的______。

4. 散列表的查找效率取决于______。

5. 图的遍历算法包括______和______。

6. 快速排序算法的平均时间复杂度为______。

7. 哈希表中的冲突解决方法有______和______。

8. 最小树算法包括______和______。

9. 最短路径算法包括______和______。

10. 并查集算法用于解决______问题。

第三部分:简答题(每题10分,共50分)1. 请简述栈和队列的区别。

2. 请简述二叉搜索树的特点。

3. 请简述哈希表的原理。

4. 请简述图的深度优先搜索算法。

5. 请简述最小树算法的原理。

第四部分:编程题(每题20分,共50分)1. 编写一个函数,实现链表的插入操作。

长沙理工大学数据结构模拟试卷2及答案

长沙理工大学数据结构模拟试卷2及答案

长沙理工大学数据结构模拟试卷2一、填空题(每空1分,共10分)1.顺序存储结构中数据元素之间的逻辑关系是由存储位置表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。

2.非空的单循环链表由头指针head指示,则其尾结点(由指针p所指)满足()。

3.n个顶点的连通图用邻接矩阵表示时,该矩阵至少有()个非零元素。

4.()可作为实现递归函数调用的一种数据结构。

5.由权值为{3, 8, 6, 2, 5}的叶子结点生成一棵哈夫曼树,其带权路径长度为()。

6.设S="I_ am_ a_ teacther",其长度为()。

7.稀疏矩阵一般压缩存储方法有两种,分别是()和()。

8.分块有序是指将文件划分为若干块,()无序,()有序。

二、判断题(你认为正确的请打对,错误的打错。

每题2分,共10分)1.线性表的顺序存储结构优于链接存储结构。

2.B—树是一种动态索引结构,它既适用于随机查找,也适用于顺序查找。

3.在线索二叉树中,任一结点均有指向其前趋和后继的线索。

4.用一维数组存储二叉树时,总是以前序遍历存储结点。

5.在索引顺序表上采用分块查找,在等概率情况下,其平均查找长度不仅与子表个数有关,而且与每一个子表中的对象个数有关。

三、单选题(请把你认为正确的答案填入括号内,每小题1分,共10分)1.假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。

则表示该遗产继承关系的最合适的数据结构应该是()。

A 树B 图C 线性表D 集合2.在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印缓冲区,该缓冲区应该是一个()结构。

A 栈B队列 C 数组D线性表3.若某线性表经常的操作是取第i 个元素和找第i个元素的前趋,则采用()存储方法最节省时间。

A 顺序表B 单链表C 双链表D 单循环链表4.广义表(a, b, (c, (d)))的表尾是()。

东北大学22春“计算机科学与技术”《数据结构Ⅱ》期末考试高频考点版(带答案)试卷号:5

东北大学22春“计算机科学与技术”《数据结构Ⅱ》期末考试高频考点版(带答案)试卷号:5

东北大学22春“计算机科学与技术”《数据结构Ⅱ》期末考试高频考点版(带答案)一.综合考核(共50题)1.假设一棵完全二叉树按层次遍历的顺序依次存放在数组BT[m]中,其中根结点存放在BT[0],若BT[i]中的结点有左孩子,则左孩子存放在A.BT[i/2]B.BT[2*i]C.BT[2*i-1]D.BT[2*i+1]参考答案:D2.若要在O(1)的时间复杂度上实现两个循环链表头尾相接,则应对两个循环链表各设置一个指针,分别指向()。

A.各自的头结点B.各自的尾结点C.各自的第一个元素结点D.一个表的头结点,另一个表的尾结点参考答案:B3.对长度为15的有序顺序表进行二分查找,在各记录的查找概率均相等的情况下,查找成功时所需进行的关键字比较次数的平均值为A.55/15B.51/15C.49/15D.39/15参考答案:C4.栈和队列都是A.顺序存储的线性结构D.链式存储的线性结构参考答案:C5.下列程序段 for(i=1;iA.O(n)B.O(1+n)C.O(1)D.O(0)参考答案:A6.树有先根遍历和后根遍历,树可以转化为对应的二叉树。

下面的说法正确的是A.树的后根遍历与其对应的二叉树的后根遍历相同B.树的后根遍历与其对应的二叉树的中根遍历相同C.树的先根遍历与其对应的二叉树的中根遍历相同D.以上都不对参考答案:B7.如果在排序过程中,每次均将一个待排序的记录按关键字大小加入到前面已经有序的子表中的适当位置,则该排序方法称为()。

A.插入排序B.归并排序C.冒泡排序D.堆排序参考答案:A8.当采用分快查找时,数据的组织方式为A.数据分成若干块,每块(除最后一块外)中数据个数需相同B.数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块C.数据分成若干块,每块内数据有序D.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块9.在一个单链表中,若删除*p结点的后继结点,则执行操作()。

数据结构考试题(二)

数据结构考试题(二)

数据结构试卷(一)一、选择题(30分)1.设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为()。

(A) O(n)(B) O(nlog2n)(C) O(1)(D) O(n2)2.设一棵二叉树的深度为k,则该二叉树中最多有()个结点。

(A) 2k-1(B) 2k(C) 2k-1(D) 2k-13.设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为()。

(A) n(B) e(C) 2n(D) 2e4.在二叉排序树中插入一个结点的时间复杂度为()。

(A) O(1)(B) O(n)(C) O(log2n)(D) O(n2)5.设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有()条有向边。

(A) n(B) n-1(C) m(D) m-16.设一组初始记录关键字序列为(345,253,674,924,627),则用基数排序需要进行()趟的分配和回收才能使得初始关键字序列变成有序序列。

(A) 3(B) 4(C) 5(D) 87.设用链表作为栈的存储结构则退栈操作()。

(A) 必须判别栈是否为满(B) 必须判别栈是否为空(C) 判别栈元素的类型(D) 对栈不作任何判别8.下列四种排序中()的空间复杂度最大。

(A) 快速排序(B) 冒泡排序(C) 希尔排序(D) 堆9.设某二叉树中度数为0的结点数为N0,度数为1的结点数为N l,度数为2的结点数为N2,则下列等式成立的是()。

(A) N0=N1+1(B) N0=N l+N2(C) N0=N2+1(D) N0=2N1+l10.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过()。

(A) log2n+1(B) log2n-1(C) log2n(D) log2(n+1)二、填空题(42分)1.1.设有n个无序的记录关键字,则直接插入排序的时间复杂度为________,快速排序的平均时间复杂度为_________。

淮海工学院数据结构期末试卷及答案(2)

淮海工学院数据结构期末试卷及答案(2)

淮海工学院06 - 07 学年第2学期数据结构试卷A( 闭卷)一、选择题(本大题共20小题,每题1分,共20分;答案填在下表内)( C )A.找出数据结构的合理性B.研究算法中输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性2.(B )是具有相同特性数据元素的集合,是数据的子集。

A.数据符号B.数据对象C.数据D.数据结构3.用链表表示线性表的优点是( C )。

A.便于随机存取B.花费的存储空间比顺序表少C.便于插入与删除D.数据元素的物理顺序与逻辑顺序相同4.输入序列为(A,B,C,D)不可能的输出有(D)。

A.(A,B,C,D)B. (D,C,B,A)C. (A,C,D,B) D . (C,A,B,D)5.在数组表示的循环队列中,front、rear分别为队列的头、尾指针,maxSize为数组的最大长度,队满的条件是( B)。

A. front=maxSizeB. (rear+1)%maxSize=frontC. rear=maxSizeD. rear=front6.设有串t='I am a good student ',那么Substr(t,6,6)=(D )。

A. studentB. a good sC. goodD. a good7.设有一个对称矩阵A,采用压缩存储方式,以行序为主序存储a11为第一个元素,其存储地址为1,每个元素占一个地址空间,则a85地址为(B )。

A.23B.33C.18D. 408.已知广义表LS=(A,(B,C,D),E)运用head和tail函数,取出LS中原子b的运算(C)。

A. Gethead(Gethead(LS))B. Gettail(Gethead(LS))C. Gethead(Gethead(Gettail(LS)))D. Gethead(Gettail(LS))9.若已知一棵二叉树先序序列为ABCDEFG,中序序列为CBDAEGF,则其后序序列为(A) 。

国家二级C语言(数据结构与算法)机试模拟试卷2(题后含答案及解析)

国家二级C语言(数据结构与算法)机试模拟试卷2(题后含答案及解析)

国家二级C语言(数据结构与算法)机试模拟试卷2(题后含答案及解析)题型有:1. 选择题选择题1.算法中,对需要执行的每一步操作,必须给出清楚、严格的规定。

这属于算法的A.正当性B.可行性C.确定性D.有穷性正确答案:C解析:本题考查算法的基本特征。

算法的可行性表示算法中执行的任何步骤都是可以被分解为基本的可执行的操作步:确定性是指算法的每一步骤必须有确切的含义;有穷性是指算法必须能在执行有限个步骤之后终止。

知识模块:数据结构与算法2.下列叙述中正确的是A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对正确答案:D解析:所谓算法是指解题方案的准确而完整的描述。

是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。

算法不等于程序,也不等于计算方法。

设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。

知识模块:数据结构与算法3.下列叙述中正确的是A.算法的效率只与问题的规模有关,而与数据的存储结构无关B.算法的时间复杂度是指执行算法所需要的计算工作量C.数据的逻辑结构与存储结构是一一对应的D.算法的时间复杂度与空间复杂度一定相关正确答案:B解析:算法的时间复杂度是指执行算法所需要的计算工作量。

算法的工作量用算法所执行的基本运算的次数来度量,而算法所执行的基本运算次数是问题规模的函数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。

算法的时间复杂度与空间复杂度并不相关。

数据的逻辑结构就是数据元素之间的逻辑关系,它是从逻辑上描述数据元素之间的关系,是独立于计算机的;数据的存储结构是研究数据元素和数据元素之问的关系如何在计算机中表示,它们并非一一对应。

算法的执行效率不仅与问题的规模有关,还与数据的存储结构有关。

知识模块:数据结构与算法4.在DOS环境F,代表键盘和显示器的设备文件名为A.PRNB.CONC.NULD.LPT正确答案:B解析:本题考查DOS下面的虚拟设备文件,选项A)的PRN表示打印机,选项B)中的CON表示键盘或屏幕,选项C)的NUL表示虚拟空设备,选项D)的LPT表示并口。

数据结构试题集(8套卷子+答案)

数据结构试题集(8套卷子+答案)

《数据结构》试卷一一、填空题:(共20分)1、当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用存储结构。

2、队列是限制插入只能在表的一端,而删除在表的另一端进行的线性表,其特点是。

3、在一棵二叉树中,度为0的结点个数为n0,度为2的个数为n2,则n0= 。

4、二叉树的前序遍历序列等同于该二叉树所对应森林的遍历序列5、对一棵二叉排序树,若以遍历该树,将得到一个以关键字递增顺序排列的有序序列。

6、三个结点a,b,c组成二叉树,共有种不同的结构。

7、在AVL树中,由于在A结点的右孩子的右子树上插入结点,使A结点的平衡因子由-1变为-2,使其失去平衡,应采用型平衡旋转。

8、图的遍历有两种,它们是。

9、堆排序的时间复杂度为。

10、在含有N个结点的二叉链表中有空链域,通常用这些空链域存储线索,从而得另一种链式存储结构----线索链表。

二、单项选择题(共20分)1、若进栈序列为1,2,3,4,假定进栈和出栈可以穿插进行,则可能的出栈序列是()(A)2,4,1,3(B)3,1,4,2(C)3,4,1,2(D)1,2,3,42、有一棵非空的二叉树,(第0层为根结点),其第i层上最多有多少个结点?()(A)2i(B)21-i(C)21+i(D) i3、设电文中出现的字母为A,B,C,D,E,每个字母在电文中出现的次数分别为9,27,3,5,11,按huffman编码,则字母A编码为()(A)10(B)110(C)1110(D)11114、下面关于数据结构的叙述中,正确的叙述是()(A)顺序存储方式的优点是存储密度大,且插、删除运算效率高(B)链表中每个结点都恰好包含一个指针(C)包含n个结点的二叉排序树的最大检索长度为logn2(D)将一棵树转为二叉树后,根结点无右子树5、程序段:y:=0while n>=(y+1)*(y+1) doy:=y+1enddo的时间复杂度为()(A)O(n) (B)O(n2) (C)O(n2/1) (D)O(1)6、排序方法中,关键码比较的次数与记录的初始排列无关的是( )(A) shell排序 (B) 归并排序 (C) 直接插入排序 (D) 直接选择排序7、数组q[0..n-1]作为一个环行队列,f 为当前队头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数总小于n,则队列中元素个数为( )(A) r-f (B) n+f-r (C) n+r-f (D) (n+r-f) mod n8、为了有效的利用散列查找技术,需要解决的问题是:( )Ⅰ:找一个好的散列函数Ⅱ:设计有效的解决冲突的方法Ⅲ:用整数表示关键码值(A) Ⅰ和Ⅲ (B) Ⅰ和Ⅱ (C) Ⅱ和Ⅲ (D) Ⅰ,Ⅱ和Ⅲ9、引入线索二叉树的目的是()(A) 加快查找结点的前驱或后继的速度(B) 为了能在二叉树中方便的进行插入与删除(C) :为了能方便的找到双亲(D) 使二叉树的遍历结果唯一10、用二分(折半)查找表的元素的速度比用顺序法()(A) 必然快(B) 必然慢(C): 相等(D): 不能确定三、简答题:(共40分)1、已知某二叉树按中序遍历序列为BFDAEGC,按前序遍历序列为ABDFCEG,试画出该二叉树形状,并写出它的后序遍历序列。

安徽大学数据结构期末考试题 (2)

安徽大学数据结构期末考试题 (2)

安徽大学20 04 -20 05学年第2 学期《数据结构》期末考试试卷(A卷)一、单项选择(在备选答案中选出一个正确答案,并将其号码填在题后的括号内。

每题2分,共20分)01.堆是一种数据结构, ( ) 是堆.A、(10,50,80,30,60,20,15,18)B、(10,18,15,20,50,80,30,60)C、(10,15,18,50,80,30,60,20)D、(10,30,60,20,15,18,50,80)02.广义表有两个重要的基本操作,取列表表头Head(Ls) ,和取列表表尾Tail(Ls),请利用这两个操作取出Ls中原子f的运算是( ),已知广义表Ls=((a,b,c,d),(e,f,g,h)).A、Head(Tail(Ls))B、Tai(Head(Ls))C、. Head(Tail(Head(Tail(Ls))))D、Head(Tail(Tai(Head(Ls))))03.若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则他的后序序列是( )A、EFGHBCDB、FEGHDCBC、FEGBHDCD、EFBGCHD04.在下列常用内部排序方法中属于不稳定排序的是( )A、希尔排序,快速排序,简单选择排序,堆排序B、希尔排序,快速排序,2-路归并排序,堆排序C、直接插入排序,起泡排序, 希尔排序, 简单选择排序D、2-路归并排序,堆排序, 希尔排序, 起泡排序05.有一个具有n个顶点的连通图生成的最小生成树中,具有( )条边A、nB、n-1C、n+1D、2n-106. 下面的二叉树中,()不是平衡二叉树。

A B C D07.如下图给出由七个顶点组成的无向图,从顶点1出发,对它进行深度优先遍历得到的顶点序列是( )A、1354267 ①②B、1347625C、1534276 ③④⑦D、1247653⑤⑥.08. 将pascal语言的数组A[0..8,0..8]按行优先次序存储在起始地址为1000的连续的内存单元中,每个存储单元的长度为2,则元素A[7,3]的地址是( )A、1132B、1134C、1114D、111209.依次读入数据元素序列{a,b,c,d,e,f}进栈,每进一个元素机器可要求下一个元素进栈和出栈.如此进行,则栈空时弹出的元素构成的序列不可能出现( )A、{c,d,b,e,f,a}B、{d,c,e,b,f,a}C、{b,d,c,e,a,f}D、{b,e,d,a,c,f}10.从具有n 个结点的二叉排序树中查找一个元素时,在最坏情况下的时间复杂度为( )A、0(n)B、0(1)C、0(logn)D、O(n²)二、填空题(每空2分,共20分)1.对于双向链表,在两个结点之间插入一个新结点时需要修改的指针共有____个。

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

数据结构试卷(二)
一、选择题(24分)
1.下面关于线性表的叙述错误的是()。

(A) 线性表采用顺序存储必须占用一片连续的存储空间
(B) 线性表采用链式存储不必占用一片连续的存储空间
(C) 线性表采用链式存储便于插入和删除操作的实现
(D) 线性表采用顺序存储便于插入和删除操作的实现
2.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有()个空指针域。

(A) 2m-1 (B) 2m (C) 2m+1 (D) 4m
3.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为()。

(A) R-F (B) F-R (C) (R-F+M)%M (D) (F-R+M)%M
4.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为()。

(A) BADC (B) BCDA (C) CDAB (D) CBDA
5.设某完全无向图中有n个顶点,则该完全无向图中有()条边。

(A) n(n-1)/2 (B) n(n-1) (C) n2(D) n2-1
6.设某棵二叉树中有2000个结点,则该二叉树的最小高度为()。

(A) 9 (B) 10 (C) 11 (D) 12
7.设某有向图中有n个顶点,则该有向图对应的邻接表中有()个表头结点。

(A) n-1 (B) n (C) n+1 (D) 2n-1
8.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为()。

(A) 2,3,5,8,6 (B) 3,2,5,8,6
(C) 3,2,5,6,8 (D) 2,3,6,5,8
二、填空题(24分)
1.为了能有效地应用HASH查找技术,必须解决的两个问题是____________________和
__________________________。

2.下面程序段的功能实现数据x进栈,要求在下划线处填上正确的语句。

typedef struct {int s[100]; int top;} sqstack;
void push(sqstack &stack,int x)
{
if (stack.top==m-1) printf(“overflow”);
else {____________________;_________________;}
}
3.中序遍历二叉排序树所得到的序列是___________序列(填有序或无序)。

4.快速排序的最坏时间复杂度为___________,平均时间复杂度为__________。

5. 设某棵二叉树中度数为0的结点数为N 0,度数为1的结点数为N 1,则该二叉树中度数为
2的结点数为_________;若采用二叉链表作为该二叉树的存储结构,则该二叉树中共有_______个空指针域。

6. 设某无向图中顶点数和边数分别为n 和e ,所有顶点的度数之和为d ,则e=_______。

7. 设一组初始记录关键字序列为(55,63,44,38,75,80,31,56),则利用筛选法建立
的初始堆为___________________________。

8. 设某无向图G 的邻接表为3
12
41314
234321>->->->->->->->->->-v v v v ,则从顶点V 1开始的深度优先遍历序列为___________;广度优先遍历序列为____________。

三、应用题(36分)
1. 设一组初始记录关键字序列为(45,80,48,40,22,78),则分别给出第4趟简单选择
排序和第4趟直接插入排序后的结果。

2. 设指针变量p 指向双向链表中结点A ,指针变量q 指向被插入结点B ,要求给出在结点A
的后面插入结点B 的操作序列(设双向链表中结点的两个指针域分别为llink 和rlink )。

3. 设一组有序的记录关键字序列为(13,18,24,35,47,50,62,83,90),查找方法用
二分查找,要求计算出查找关键字62时的比较次数并计算出
查找成功时的平均查找长度。

4. 设一棵树T 中边的集合为{(A ,B),(A ,C),(A ,D),(B ,E),
(C ,F),(C ,G)},要求用孩子兄弟表示法(二叉链表)表示出
该树的存储结构并将该树转化成对应的二叉树。

5. 设有无向图G (如右图所示),要求给出用普里姆算法构造最小
生成树所走过的边的集合。

6. 设有一组初始记录关键字为(45,80,48,40,22,78),要求
构造一棵二叉排序树并给出构造过程。

四、算法设计题(16分)
1. 设有一组初始记录关键字序列(K 1,K 2,…,K n ),要求设计一个算法能够在O(n)的时间
复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K i ,右半部分的每个关键字均大于等于K i 。

2. 设有两个集合A 和集合B ,要求设计生成集合C=A ∩B 的算法,其中集合A 、B 和C 用链
式存储结构表示。

数据结构试卷(二)参考答案
一、选择题
1.D
2.B
3.C
4.A
5.A
6.C
7.B
8.C
二、填空题
1.构造一个好的HASH函数,确定解决冲突的方法
2.stack.top++,stack.s[stack.top]=x
3.有序
4.O(n2),O(nlog2n)
5.N0-1,2N0+N1
6.d/2
7.(31,38,54,56,75,80,55,63)
8.(1,3,4,2),(1,3,2,4)
三、应用题
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/9
4.树的链式存储结构略,二叉树略
5.E={(1,3),(1,2),(3,5),(5,6),(6,4)}
6.略
四、算法设计题
1.设有一组初始记录关键字序列(K1,K2,…,K n),要求设计一个算法能够在O(n)的时间
复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K i,右半部分的每个关键字均大于等于K i。

void quickpass(int r[], int s, int t)
{
int i=s, j=t, x=r[s];
while(i<j){
while (i<j && r[j]>x) j=j-1; if (i<j) {r[i]=r[j];i=i+1;}
while (i<j && r[i]<x) i=i+1; if (i<j) {r[j]=r[i];j=j-1;}
}
r[i]=x;
}
2.设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链
式存储结构表示。

typedef struct node {int data; struct node *next;}lklist;
void intersection(lklist *ha,lklist *hb,lklist *&hc)
{
lklist *p,*q,*t;
for(p=ha,hc=0;p!=0;p=p->next)
{ for(q=hb;q!=0;q=q->next) if (q->data==p->data) break;
if(q!=0){ t=(lklist *)malloc(sizeof(lklist)); t->data=p->data;t->next=hc; hc=t;} }
}。

相关文档
最新文档