南京邮电大学2005年数据结构考研试卷
南京邮电大学考研数字信号处理2003-2008年真题

1 N 1 k nk (n) H (WN 试证: y ) X ( k )WN N k 0
五、设计题(共 36 分)
(n) 的 DFS) (k ) 是 x (其中 X
1、 (10 分) 已知模拟低通滤波器的传递函数为 Ha(s)
3 试 (s 1)(s 3)
x n
e j0n ,0 n N 1
0
其他
(a)求 x n 的傅立叶变换 X (e j ) 。 (b)求有限长序列 x n 的 N 点 DFT X (k ) 。
2
(c)对于 0 2 k0 / N ,其中 k0 为整数的情况,求 x n 的 DFT。 2、 (10 分)已知序列 a n 为 1, 2,2,2 ,序列 b n 为 2,1, 2 。 (1)求线性卷积 a n b n ; (2)若用基 2FFT 的循环卷积法(快速卷积)来得到两序列的线性卷积 。 运算结果,请写出计算步骤(需注明 FFT 点数) 3、 (10 分)如图 3(a)表示一个 6 点离散时间序列 x(n) 。假设在图示区 间外 x(n) 0 。令 X (e j ) 表示 x(n) 的 DTFT, X 1 k 表示 X (e j ) 在每隔 / 2 处 的样本, 即 X 1 k X (e j ) | ( /2) k 0 k 3 由 X 1 k 的 4 点 IDFT 得到的 4 点 序列 x1 n 如图 3(b)所示,根据此信息,是否能够唯一确定 数值?如 果可以,求出 值。
二选择题每题2分共10tcos5t下信号分别为yt都没有失真2已知正弦序列xnsin165n则该序列a是周期序列周期为58b是周期序列周期为c不是周期序列3一个fir数字滤波器其实现结构为a递归结构b非递归结构c递归或非递归结构4已知系统的单位脉冲响应为hnu3n则该系统为a非因果不稳定b非因果稳定c因果不稳定5已知系统输入输出关系为yn2xn5则系统为a线性时不变系统b非线性时不变系统c非线性时变系统三画图题每题10分共201画出n6按时间抽取dit的fft分解流图要求
南京邮电大学考研数据结构(811)00-09年真题和答案

南京邮电大学2000年硕士研究生入学考试数据结构试题一、完成下列各题(每小题6分,共18分)1.设n是偶数,试计算运行下列程序段后m的值并给出该程序段的时间复杂度。
m:=0;FOR i:=1 TO n DOFOR j:=2*i TO n DOm:=m+1;2.已知字符串‘cddcdececd ea’,过算每介字符的next和nextval函数的值.3.给出冒泡排序和快速排序的最好情况,平均情况和最坏情况下的时间复杂度。
二、完成下列各题:(每小题8分,共24分)1、设有下图所示的有向图,给出其邻接矩阵和强连通分量。
2、设有3阶B-树如下图所示,(1)从该B-树上依次插入关键字33,97,画出两次插入后的B-树;(2)从(1)得到的B-树上依次删除66,43,画出两次删除后的B-树;(1)画出据此构造的败选择树(2)画出输出一个记录后的败方树三、阅读下列二叉树算法,每个结点三个域:lchild,element,rchild。
(10分)(1)X(p)对以p为根的二叉树执行什么功能?(2)以下图所示的二叉树调用此算法,则X(p)的执行结果是什么?(3)执行中,栈s中元素个数最多时为多少?给出该时栈中元素的情况。
void X(BinTree *t){struct Stack s;BinTnode *qPush(s,NUL1)While(*p){q=(*p)->lchild(*p)->1child=(*p)->rchild(*p)->rchild=qIf((*p)->lchild)Push(s,(*p)->1child);If((*p)->rchild)Push(s,(*p)->rchild);else(*p)=Pop(s)}}四、阅读下列要求每对顶点之间的最短路径的Floyd算法。
(16分)(1)若对下图所示的有向图执行此算法,写出对k为1到n的各步中,二维数组a和path的值。
南京大学《数据结构》试卷(含答案)

择:
( A)
A. 利用最小堆存储边
B. 利用栈存储结点
C. 利用二维数组存储结点
D. 利用并查集存储边
(8) 已知一算术表达式的后缀形式为 ABC*+DE/-,其前缀形式为:( D )
A. -A+B*C/DE
B. -A+B*CD/E
C. -+*ABC/DE
D. -+A*BC/DE
(9) n 个关键码排序,如果选用直接插入排序方法,则元素的移动次数在最坏情况下可以达
每小题2分本题满分20c语言中数组是按行优先顺序存储的假设定义了一个二维数组a2030每个元素占两个字节其起始地址为2140则二维数组a的最后一个数据元素的地址为2140230201是两个单链表链表长度分别为n和m其元素值递增有序将a归并成一个按元素值递增有序的单链表并要求辅助空间为o1则实现该功能的算法的时间复杂度为中则一定比a3大的元素有个位置开始存放有10个元素的有序表采用折半查找需要比较4次才可找到的元素个数为3
如果使用别的办法,参考其效率,酌情给分。只要效率过得去,也可以得满分。 但是纯粹枚举则得分不高。
2. 设计非递归算法实现图的深度优先遍历。(图用邻接表表示,已经定义了一个顺序栈 stack[top],top 为栈顶指针,使用 visit(node)来表示对顶点 node 的访问。) 图的邻接表结构定义如下: struct Edge { int dest; Edge *link; //下一条边链指针 } struct Vertex { int data; Edge *adj; //边链表的头指针 } class Graph { private: Vertex *Nodetable; //顶点表 int cnt }
南邮数据结构考研试卷03-05

南京邮电学院2005年攻读硕士学位研究生入学考试数据结构试题一、单选题(每题3分,共30分)1. 设使用某算法对n个元素进行处理,所需的时间是T(n) = 100n log2n + 200n + 2000则该算法的渐进时间复杂度为。
A. O(1)B. O(n)C. O(200n)D. O(nlog2n)2. 设顺序表的长度为n,并设从表中删除元素的概率相等。
则在平均情况下,从表中删除一个元素需要移动的元素个数是。
A. (n-1)/2B. n/2C. n(n-1)/2D. n(n+1)/23. 如果只保存一个n阶对称矩阵a的下三角元素(含对角线元素),并采用行主序存储在一维数组b中,a[i][j](或a[i, j])存于b[k],则对i<j,下标k与i,j的关系是。
设一维数组和矩阵元素的行列下标取值均从0开始。
A.(1)2i ij++ B.(1)2j ji++C.(1)2i ij-+ D.(1)2j ji-+4. 一棵三叉树中,已知度为3的结点个数等于度为2的节点数,且树中结点的数目为13,则度为2的结点数目为。
A. 4B. 2C. 3D. 55. 在基于关键字比较的排序算法中,算法在最坏情况下的时间复杂度不高于O (nlog2n)。
A. 冒泡排序B. 合并排序C. 希尔排序D. 快速排序6. 已知一棵由关键字集合{18,43,27,77,44,36,39}所构造的二叉搜索树(也称为二叉排序树),对该树进行中序遍历得到的节点序列为。
A. 树形未定B. 18,43,27,77,44,36,99C. 18,27,36,39,43,44,77D. 77,44,43,39,36,27,187. 一个索引文件,如果经常需要插入和删除元素,宜采用做索引。
A. 二叉排序树B. 二叉平衡树C. B-树D. B+树8. 均匀的散列函数应当使关键字集合中的元素,经过散列函数映射到散列表中任何位置的概率。
A. 相等B. 最小C. 最大D. 一定9. 关键路径是指AOE(Activity On Edge)网中。
数据结构考研真题及其答案

一、选择题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(1.5分)】A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D.以上几个都是错误的6.下面说法错误的是(C)【南京理工大学2000一、2(1.5分)】(1)算法原地工作的含义是指不需要任何额外的辅助空间( 2)在相同的规模n 下,复杂度O(n) 的算法在时间上总是优于复杂度nO(2 ) 的算法( 3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界( 4)同一个算法,实现语言的级别越高,执行效率就越低4A . (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)C2Dn .O(n ). O(log 2 )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(n 2)【南京理工大学 1998 一、 1(2 分 ) 】13.以下哪个数据结构不是多型数据类型(D)【中山大学1999一、 3(1 分)】A.栈B.广义表C.有向图D.字符串14.以下数据结构中,( A)是非线性数据结构【中山大学1999一、4】A.树B.字符串C.队D.栈15.下列数据中,( C )是非线性数据结构。
计算机专业基础综合数据结构(数组和广义表)历年真题试卷汇编3

计算机专业基础综合数据结构(数组和广义表)历年真题试卷汇编3(总分:66.00,做题时间:90分钟)一、综合题(总题数:20,分数:48.00)1.数组A[1..8,一2..6,0..6]以行为主序存储,设第一个元素的首地址是78,每个元素的长度为4,试求元素A[4,2,3]的存储首地址。
【厦门大学1998五、1(5分)】__________________________________________________________________________________________ 正确答案:(正确答案:元素A[4,2,3]的存储首地址为958。
三维数组以行为主序存储,其元素地址公式为:LOC(A ijk )=LOC(A c1c2c3 )=(3A c1c2c3 )+[(i-c 1 )V 2 V 3 +(j—c 2 )V 3 +(k-c 3 )]*L其中,c i,d i 是各维的下界和上界,V i =d i一c i +1是各维元素个数,L是一个元素所占的存储单元数。
)2.数组A中,每个元素A[i,f]的长度均为32个二进位,行下标从一1到9,列下标从1到11,从首地址S开始连续存放在主存储器中,主存储器字长为16位。
求:(1)存放该数组所需多少单元?(2)存放数组第4列所有元素至少需多少单元?(3)数组按行存放时,元素A[7,4]的起始地址是多少?(4)数组按列存放时,元素A[4,7]的起始地址是多少?【大连海事大学1996四、1(6分)】__________________________________________________________________________________________ 正确答案:(正确答案:每个元素32个二进制位,主存字长16位,故每个元素占2个字长,行下标可平移至1到11。
(1)242 (2)22 (3)S+182 (4)S+142)3.假设按低下标优先存储整型数组A(一3:8,3:5,一4:0,0:7)时,第一个元素的字节存储地址是100,每个整数占4字节,问A(0,4,一2,5)的存储地址是什么? 【清华大学1996三】__________________________________________________________________________________________ 正确答案:(正确答案:1784 (公式:Loc(A ijkl )=100(基地址)+[(i-c 1 )v 2 v 3 v 4 +一c 2 )v 3 v 4 +(k-c3 )v4 +(l一c 4 )]*4))4.设有五对角矩阵A=(a ij ) 20*20,按特殊矩阵压缩存储的方式将其五条对角线上的元素存于数组A[-10:m]中,计算元素A[15,16]的存储位置。
2005级数据结构试题A卷

2005级数据结构试题A卷注:回答问题,请在答题卡上回答,不要回答在试题上。
一、是非判断(回答’Y’或者’N’即可,不许多答、不许用其他符号替代24分)(1)线性表的逻辑顺序与物理顺序总是一致的。
(2)线性表的顺序存储表示优于链式存储表示。
(3)线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。
(4)二维数组是其数组元素为线性表的线性表。
(5)每种数据结构都应具备三种基本运算:插入、删除和搜索。
(6 ) 二叉树必须有父结点、但不一定有左孩子结点或是右孩子结点。
(7)用n个结点构造Huffman树,这个树有2n个结点。
(8)有n个顶点的有向图,各个顶点完全连通则有n-1条边。
(9)拓扑排序的有向图,要求图入度为0的顶点只能有一个。
(10)在二叉排序树上查找,其效率总是高于顺序表上查找。
(11)归并排序是稳定排序且时间复杂度为O(nLogn)。
(12)Floyd最短路计算需要深度遍历图、且仅仅适合于有向图。
二,选择判断(每个题目仅有一个答案30分)1.算法指的是A.计算机程序 B.解决问题的计算方法C.排序算法 D.解决问题的有限运算序列2.关于以下图问题的计算,使用深度编历算法的是:A.Dijkstra最短路B.拓扑排序C.关键路径计算D.Prim最小生成树3.将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为A.O(1) B.O(n) C.O(m) D.O(m+n)4.哈希表查找中,填充因子和查找效率的关系是:A.填充因子越大、查找效率越好B.填充因子越小、查找效率越好C.填充因子要根据查找对象计算D.填充因子和查找效率没直接关系5.图的拓扑排序中,主要使用了哪种数据结构存储来暂存顶点?A.顺序表 B.栈C.队列 D.数组6.如下陈述中正确的是A.串是一种特殊的线性表 B.串的长度必须大于零C.串中元素只能是字母 D.空串就是空白串7.图的顶点个数是n,深度遍历该图,时间复杂度是:A.O(1) B.O(n) C.O(n2) D.O(n3)8、有数组char A[3][3][3],按行存放于一个连续的存储空间中,如A[0][0][0] 存储地址是200(10进制),则它的数组元素A[1][1][2]在内存中的位置是:A.212 B.211 C.214 D.2159.对一个单向链表,下列程序段中,p指针类型为:struct Node {int X;struct Node *next;}如p开始指向链表头结点,最后p一定指向尾结点的是:A.while(p!=NULL) p=p->next;B.while(p!=NULL) p++;C.while(p->next!=NULL) p++;D.while(p++ ->next!=NULL);10.索引文件通常由索引表和主文件两部分构成,其中A.索引表和主文件均必须是有序文件B.索引表和主文件均可以是无序文件C.索引表必须是有序文件D.主文件必须是有序文件11.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为A.e B.2*e C.n2-e D.n2-2*e12.假设一个有n个顶点和e条弧的有向图用邻接矩阵表示,则删除与某个顶点Vi相关的所有弧的时间复杂度是A.O(n) B.O(e) C.O(n+e) D.O(n*e)13.用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下:20,15,21,25,47,27,68,35,8415,20,21,25,35,27,47,68,8415,20,21,25,27,35,47,68,84则所采用的排序方法是A.选择排序 B.希尔排序 C.归并排序 D.快速排序14.对n个不同值元素的集合,找到最大/最小元的算法,应该进行多少种比较?A.n B.n-1 C.n2 D.n2-115.下列排序方法中,属于不稳定的排序方法是A.直接插入排序法B.快速排序法C.冒泡排序法D.希尔排序法三、计算、简答题(28分)1 有二叉树,先序遍历结果EBADCFHGIKJ,中序遍历结果为ABCDEFGHIJK,则后序遍历结果是什么?2 有数字序列(40,28,16,56,50,32,30,63),按次序插入每个对象生成一棵A VL树,对该树插入完成后,给出该树的后序遍历结果。
数据结构真题2005年下半年

数据结构真题2005年下半年(总分:154.98,做题时间:90分钟)一、{{B}}单项选择题{{/B}}(总题数:15,分数:30.00)1.若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上( )(分数:2.00)A.操作的有限集合B.映象的有限集合C.类型的有限集合D.关系的有限集合√解析:2.在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为 ( )(分数:2.00)A.n-i+1B.iC.i+1D.n-i √解析:3.若不带头结点的单链表的头指针为head,则该链表为空的判定条件是 ( )(分数:2.00)A.head==NULL √B.head—>next==NULLC.head!=NULLD.head—>next==head解析:4.引起循环队列队头位置发生变化的操作是 ( )(分数:2.00)A.出队√B.入队C.取队头元素D.取队尾元素解析:5.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不可能出现的出栈序列是( )(分数:2.00)A.2,4,3,1,5,6B.3,2,4,1,6,5C.4,3,2,1,5,6D.2,3,5,1,6,4 √解析:6.字符串通常采用的两种存储方式是 ( )(分数:2.00)A.散列存储和索引存储B.索引存储和链式存储C.顺序存储和链式存储√D.散列存储和顺序存储解析:7.设主串长为n,模式串长为m(m≤n),则在匹配失败情况下,朴素匹配算法进行的无效位移次数为 ( ) (分数:2.00)A.mB.n-mC.n-m+1 √D.n解析:8.二维数组A[12][18]采用列优先的存储方法,若每个元素各占3个存储单元,且第1个元素的地址为150,则元素A[9][7]的地址为 ( )(分数:2.00)A.429 √B.432C.435D.438解析:9.对广义表L=((a,b),(c,d),(e,f))执行操作tail(tail(L))的结果是 ( )(分数:2.00)A.(e,B.((e,) √C.(D.()解析:10.下列图示的顺序存储结构表示的二叉树是 ( )(分数:2.00)A. √B.C.D.解析:11.n个顶点的强连通图中至少含有 ( )(分数:2.00)A.n-1条有向边B.n条有向边√C.n(n-1)/2条有向边D.n(n-1)条有向边解析:12.对关键字序列(56,23,78,92,88,67,19,34)进行增量为3的一趟希尔排序的结果为( )(分数:2.00)A.(19,23,56,34,78,67,88,92)B.(23,56,78,66,88,92,19,34)C.(19,23,34,56,67,78,88,92)D.(19,23,67,56,34,78,92,88) √解析:13.若在9阶B-树中插入关键字引起结点分裂,则该结点在插入前含有的关键字个数为( )(分数:2.00)A.4B.5C.8 √D.9解析:14.由同一关键字集合构造的各棵二叉排序树 ( )(分数:2.00)A.其形态不一定相同,但平均查找长度相同B.其形态不一定相同,平均查找长度也不一定相同√C.其形态均相同,但平均查找长度不一定相同D.其形态均相同,平均查找长度也都相同解析:15.ISAM文件和VSAM文件的区别之一是 ( )(分数:2.00)A.前者是索引顺序文件,后者是索引非顺序文件B.前者只能进行顺序存取,后者只能进行随机存取C.前者建立静态索引结构,后者建立动态索引结构√D.前者的存储介质是磁盘,后者的存储介质不是磁盘解析:二、{{B}}填空题{{/B}}(总题数:10,分数:20.00)16.数据的逻辑结构在计算机存储器内的表示,称为数据的 1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南 京 邮 电 学 院
2005年攻读硕士学位研究生入学考试
数 据 结 构 试 题
一、单选题(每题3分,共30分)
1. 设使用某算法对n 个元素进行处理,所需的时间是
T(n) = 100n log 2n + 200n + 2000 则该算法的渐进时间复杂度为 。
A. O(1)
B. O(n)
C. O(200n)
D. O(nlog 2n)
2. 设顺序表的长度为n ,并设从表中删除元素的概率相等。
则在平均情况下,从表中删除一个元素需要移动的元素个数是 。
A. (n -1)/2
B. n/2
C. n(n -1)/2
D. n(n +1)/2
3. 如果只保存一个n 阶对称矩阵a 的下三角元素(含对角线元素),并采用行主序存储在一维数组b 中,a[i][j](或a[i, j])存于b[k],则对i<j ,下标k 与i ,j 的关系是 。
设一维数组和矩阵元素的行列下标取值均从0开始。
A. (1)2
i i j ++ B. (1)2j j i ++ C. (1)2i i j −+ D. (1)2
j j i −+
4. 一棵三叉树中,已知度为3的结点个数等于度为2的节点数,且树中结点的数目为13,则度为2的结点数目为 。
A. 4
B. 2
C. 3
D. 5
5. 在基于关键字比较的排序算法中, 算法在最坏情况下的时间复杂度不高于O
(nlog 2n )。
A. 冒泡排序 B. 合并排序 C. 希尔排序 D. 快速排序
6. 已知一棵由关键字集合{18,43,27,77,44,36,39}所构造的二叉搜索树(也称为二叉排序树),对该树进行中序遍历得到的节点序列为 。
A. 树形未定
B. 18,43,27,77,44,36,99
C. 18,27,36,39,43,44,77
D. 77,44,43,39,36,27,18
7. 一个索引文件,如果经常需要插入和删除元素,宜采用 做索引。
A. 二叉排序树
B. 二叉平衡树
C. B-树
D. B+树
8. 均匀的散列函数应当使关键字集合中的元素,经过散列函数映射到散列表中任何位置的概率 。
A. 相等
B. 最小
C. 最大
D. 一定
9. 关键路径是指AOE(Activity On Edge)网中。
A. 二叉排序树
B. 二叉平衡树
C. B-树
D. B+树
10. 堆可以是最大堆,也可以是最小堆。
下列序列中,既不是最大堆,也不是最小堆。
A. (90,85,78,67,56,42,35,24,18)
B. (18,35,56,24,42,78,67,85,90)
C. (90,78,85,56,67,35,42,18,24)
D. (18,35,24,56,42,78,67,85,90)
二、填空题(每题6分,共42分)
1. 设有n个顶点的有向图采用邻接矩阵表示,并保存在二维数组a中,则求第i个顶点的入度和出度的计算公式分别是⑴ 和⑵ 。
2.设有20个元素构造二叉平衡树,其最大和最小高度分别是 ⑶ 和 ⑷ 。
3. 某二叉树结点的中序序列为A,B,C,D,E,F,G,后序序列为B,D,C,A,F,G,E,则该二叉树的先序序列为⑸ ,该二叉树对应的森林中包括⑹ 棵树。
4. 对一个有向图进行拓扑排序,输出的拓扑序列不能包括图中全部顶点,表明此图⑺。
如果此图代表一个工程之间的领先关系,当算法执行出现上述情况时,应当检查⑻ 。
5. 设对主串“bcdb cdca bcdb cdba c”和模式串“bcdb cbd”进行KMP模式匹配。
第1趟匹配失败后,若使用非改进的Next函数,则下一趟将由主串的第⑼ 字符与模式串的第⑽ 字符开始比较。
若采用改进的Next函数,则下一趟匹配将由主串的第⑾ 字符与模式串的第⑿ 字符开始比较。
字符串中字符从1开始编号。
6. 假定散列表使用除留余数法散列函数H,key为关键字,模为M,则该散列函数的形式为⒀ 。
若采用移位折叠法散列函数,散列地址取3位,设key=43256789654,则所得的散列函数值为 ⒁ 。
7. 在将中缀表达式转换为后缀表达式和计算后缀表达式的算法中,都需要使用堆栈。
对于前者,进入堆栈的元素为表达式中的⒂ ,而对于后者,进入堆栈的元素为 ⒃ 。
中缀表达式(a+b)/c-(f-d/e)所对应的后缀表达式是 ⒄ 。
三、解答题(每题8分,共48分)
1. 已知有向图如图1所示,并已建成该图的邻接表。
使用该邻接表对此图进行深度优先遍历时,结点被访问的次序是:1,3,2,5,6,4;对其进行广度优先遍历时,结点被访问的次序是:1,3,2,4,6,5。
⑴ 画出产生上述遍历结果的邻接表;
⑵ 分别画出产生上述遍历结果的深度优先生成树和广度优先生成树。
图1
2. 设无向图如图2所示,现采用克鲁斯卡尔算法求最小代价生成树。
再加入一条新边时,为了判定是否会因此形成回路,可以使用并查集(该数据结构也用于求等价关系问题)。
⑴ 画出所生成的最小代价生成树;
⑵ 给出在算法执行中,当生成树上有5条边时的并查集的状态。
图2
3. 设有数据元素的有序序列(22,32,35,44,48,51,57,60),
⑴ 现采用对半查找方法查找60,请按比较的次序,列出与60做比较的表中元素; ⑵ 对半查找方法要求元素序列采用何种存储表示方法。
4. 关于图3所示的4阶B-树,回答下列问题:
⑴ 依次插入关键字70和85,画出插入后的B 树。
⑵ 依次删除关键字14和16,画出删除后的B 树(仍从原图3中删除)。
⑶ 你认为用于存储B-树中每个结点的存储块的大小是否应相同,为什么?
40
14 49 58
5 1
6 42 53 60 63 72
图3
5. 使用快速排序算法对元素序列(23,43,36,30,20,54,76,28)进行排序。
⑴ 写出对上述序列进行第一趟排序后的结果;
⑵ 待排序的元素序列处于什么状态时快速排序所需时间最长?
⑶ 采用什么措施可改善快速排序的最坏情况时间性能?
6. 设二叉搜索树如图4所示,
⑴ 在该树上插入元素35,画出插入后的二叉搜索树;
12
5 43
76
43 7527
4838
⑵ 从⑴所生成的树上删除25,画出删除后的二叉搜索树。
图4
四、算法设计题(共30分)
1. (12分)
设计一个算法,按元素值的“非增”次序,打印一棵二叉搜索树(也称二叉排序树)的元素。
设二叉搜索树采用二叉链表存储,每个结点有三个域:lchild, rchild, data。
算法中,除二叉链表中原有的结点空间外,只允许使用若干指针变量,不允许使用额外的元素空间。
2. (18分)
已知无向图采用邻接矩阵表示,但该邻接矩阵不使用二维数组存储,而今使用一维数组g保存邻接矩阵的下三角部分元素(不含对角线元素)。
请设计一个或多个函数(或过程),求无向图的各连通分量的顶点集。