东南大学1996数据结构试题
东南大学数据结构试卷A

共 11 页 第1页东 南 大 学 考 试 卷(A 卷) 课程名称 数据结构 考试学期 10-11-3 得分 适用专业 吴健雄学院610 考试形式 闭卷 考试时间长度 120分钟自 觉 遵 守 考 场 纪 律 如 考 试 作 弊 此 答卷无 效一、选择题(每题1分,共5分)1.设有一个二维数组A[m][n],如果A[0][0]的首地址为644(10进制),A[2][2]的首地址为676,每个元素占一个字节,则A[4][5]的首地址为()。
A.692 B.626 C.709 D.7242.若让元素1,2,3依次但并非连续进栈,则哪种出栈次序是不可能的()A.3,2,1 B.2,1,3C.3,1,2 D.1,2,33.设完全二叉树有82个结点,从根结点开始顺序编号,根节点为1号,其他结点自上向下,同一层次自左向右连续编号。
则第41号结点的双亲结点的编号为()A.20 B.21 C.81 D.824.采用对半搜索算法搜索长度为n的有序表,元素的平均搜索长度为()A.O(n2) B.O(n) C.O(n log2n) D.O(log2n)5.采用邻接表存储的图的深度优先遍历算法类似于二叉树的()A.中序遍历B.前序遍历C.后序遍历D.按层次遍历二、判断题(每题1分,共5分)1.邻接表只能用于有向图的存储,邻接矩阵对于有向图和无向图的存储都适用。
()2.直接选择排序是一种不稳定的排序方法。
()3.在用散列表存储关键码集合时,可以用双散列法寻找下一个空桶。
在设计再散列函数时,要求计算出的值与表的大小m互质。
()4.连通分量是无向图中的极小连通子图。
()5.若有一个叶子节点是二叉树中某子树的前序遍历结果序列的最后一个结点,它一定是该子树的中序遍历结果序列的最后一个结点。
()共11页第2页三、填空题(每空1分,10分)1.每次从表的无序部分取出一个元素,把它插入到表的有序部分的适当位置,此种排序方法叫作(1)排序;每次从表的无序部分中挑选出一个最小或最大元素,把它与表的有序部分的后一元素交换,此种排序方法叫作(2)排序。
数据结构第四章考试题库(含答案)

第四章串一、选择题1.下面关于串的的叙述中,哪一个是不正确的()【北方交通大学 2001 一、5(2分)】A.串是字符的有限序列 B.空串是由空格构成的串C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储2 若串S1=‘ABCDEFG’, S2=‘9898’ ,S3=‘###’,S4=‘012345’,执行concat(replace(S1,substr(S1,length(S2),length(S3)),S3),substr(S4,index (S2,‘8’),length(S2)))其结果为()【北方交通大学 1999 一、5 (25/7分)】A.ABC###G0123 B.ABCD###2345 C.ABC###G2345 D.ABC###2345E.ABC###G1234 F.ABCD###1234 G.ABC###012343.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为()A.求子串 B.联接 C.匹配 D.求串长【北京邮电大学 2000 二、4(20/8分)】【西安电子科技大学 1996 一、1 (2分)】4.已知串S=‘aaab’,其Next数组值为()。
【西安电子科技大学 1996 一、7 (2分)】A.0123 B.1123 C.1231 D.12115.串‘ababaaababaa’的next数组为()。
【中山大学 1999 一、7】A.0 B.012121111212 C.0 D.06.字符串‘ababaabab’的nextval 为()A.(0,1,0,1,04,1,0,1) B.(0,1,0,1,0,2,1,0,1)C.(0,1,0,1,0,0,0,1,1) D.(0,1,0,1,0,1,0,1,1 )【北京邮电大学 1999 一、1(2分)】7.模式串t=‘abcaabbcabcaabdab’,该模式串的next数组的值为(),nextval 数组的值为()。
计算机专业基础综合数据结构(图)历年真题试卷汇编4

计算机专业基础综合数据结构(图)历年真题试卷汇编4(总分:58.00,做题时间:90分钟)一、综合题(总题数:7,分数:14.00)1.已知一图如下图所示:(1)写出全部拓扑排序;(2)以V1为源点,以V8为终点,给出所有事件允许发生的最早时间和最晚时间,并给出关键路径;(3)求V1结点到各点的最短距离。
【北京邮电大学2000五(15分)】__________________________________________________________________________________________正确答案:(正确答案:关键路径有3条,长17。
各事件允许发生的最早时间和最晚时间略。
V1→V2→V6→V8,V1→V3→V5→V7→V8,V1→V7→V8→V1→V4→V5→V8 (3)V1结点到其他各结点的最短距离为:2,3,6,12,10,15,16。
)2.(1)对于有向无环图,叙述求拓扑有序序列的步骤;(2)对于以下的图,写出它的四个不同的拓扑有序序列。
【南开大学1998二(12分)】__________________________________________________________________________________________ 正确答案:(正确答案:(1)对有向图,求拓扑序列步骤为: 1)在有向图中选一个没有前驱(即入度为零)的顶点并输出。
2)在图中删除该顶点及所有以它为尾的弧。
3)重复1)和2),直至全部顶点输出,这时拓扑排序完成;否则,图中存在环,拓扑排序失败。
(2)这里使用形式化描述方法,当有多个顶点可以输出时,将其按序从上往下排列,这样不会丢掉拓扑序列。
这里只画出从顶点1开始的所有可能的拓扑序列,从顶点3开始的拓扑序列可类似画出。
)3.有向图的拓扑排序能否用图的深度搜索模式来查找?若能,请简述方法;若不能,请简述原因。
【西北大学2000二、8(5分)】__________________________________________________________________________________________ 正确答案:(正确答案:图的深度优先遍历可用于拓扑排序。
东南大学1996年研究生入学考试:操作系统试题

东南大学1996年研究生入学考试:操作系统试题
一、名词解释(15%)
1、线程
2、SPOOLing
3、软中断
4、重定位
5、设备接口模块
二、选择题
1、从下述DOS叙述中选出5条正确的叙述。
(5%)
(1)使用SYS命令可以把两个隐含的系统文件和COMMAND文件传送到指定盘上。
(2)用COPY命令复制的文件可直接使用,用BACKUP命令只能做备份。
(3)COMMAND、COM包含了DOS的所有命令。
(4)DOS的引导程序负责装入DOS的其余部分,它在ROM中。
(5)在多级目录结构中,不允许两个不同文件具有相同名字。
(6)DOS的内部命令在引导DOS时被装入内存,而外部命令一般不常驻内存。
(7)使用XCOPY命令,可以把一个盘上的文件和子目录拷入指定盘。
(8)绝对路径是指定目录路径的一种方法,它是指从根目录开始到文件所在目录为止。
(9)磁盘上的文件若被删除都可设法修复。
(10)使用CHKDSK命令不仅可以提供磁盘和内存当前状态的报告,还可以对磁盘错误进行修正。
2、从下述OS相关叙述中选出正确的叙述(10%)
(1)分时系统一定是多道系统,多道系统也一定是分时系统。
(2)为提高计算机CPU和外部设备的利用率,把多个程序同时放入主存,使CPU和外设能并行执行,这种方法称为多道程序设计。
(3)虚存就是把一个实存空间分配给用户轮流使用,使用户感到自己独占主存。
(4)批处理系统不允许用户随时干预自己作业的运行。
数据结构第四章考试题库(含答案)

第四章串一、选择题1.下面关于串的的叙述中,哪一个是不正确的?()【北方交通大学 2001 一、5(2分)】A.串是字符的有限序列 B.空串是由空格构成的串C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储2 若串S1=‘ABCDEFG’, S2=‘9898’ ,S3=‘###’,S4=‘’,执行concat(replace(S1,substr(S1,length(S2),length(S3)),S3),substr(S4,i ndex(S2,‘8’),length(S2))) 其结果为()【北方交通大学 1999 一、5 (25/7分)】A.ABC###G0123 B.ABCD###2345 C.ABC###G2345 D.ABC###2345E.ABC###G1234 F.ABCD###1234 G.ABC###012343.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为()A.求子串 B.联接 C.匹配 D.求串长【北京邮电大学 2000 二、4(20/8分)】【西安电子科技大学 1996 一、1 (2分)】4.已知串S=‘aaab’,其Next数组值为()。
【西安电子科技大学 1996 一、7 (2分)】A.0123 B.1123 C.1231 D.12115.串‘ababaaababaa’的next数组为()。
【中山大学 1999 一、7】A.9 B.2 C.6 D.456.字符串‘ababaabab’的nextval 为()A.(0,1,0,1,04,1,0,1) B.(0,1,0,1,0,2,1,0,1)C.(0,1,0,1,0,0,0,1,1) D.(0,1,0,1,0,1,0,1,1 )【北京邮电大学 1999 一、1(2分)】7.模式串t=‘abcaabbcabcaabdab’,该模式串的next数组的值为(),nextval数组的值为()。
东南大学数据结构试卷-推荐下载

共8页
第3页
五、综合算法题(每空 2.5 分,共 55 分)
1.完善改进的归并排序算法。*this是一个待排序的表,而表L2是一个辅助的工作表,帮
助完成排序的中间步骤,最终完成*this的排序。所谓改进指在把元素序列复制到辅助表
中时,把第2个表的元素顺序逆转,这样两个待归并的表从两端开始处理,向中间归并。
可以省去检查子表是否结束的判断。
template <typename T>void Orderedlist<T>::MergeSort(int left, int rig
improvedMergeSort(L2, left, right);
template <typename T>
(1)
template <typename T>
void Orderedlist<T>::improvedMerge(Orderedlist<T> &L2, int left, int mid, int right){
} }
int s1 = left, s2 = right, t = left, k ; //s1,s2是检测指针,t是存放指针
for (k = left; k <= mid; k++){
(2)
} for (k = mid + 1; k <= right; k++){
(3) } while (t <= right){
if(L2.slist[s1] <= L2.slist[s2]) (4)
else (5)
;
2.完成二叉树前序遍历的非递归算法和层次序遍历算法操作。 //非递归前序遍历。每访问一个结点后,在向左子树遍历下去之前,利用栈记录该结点的 右子女结点的地址,以便在左子树退回时可以直接从栈顶取得右子树的根结点,继续右
数据结构考试试题库含答案解析

数据结构考试试题库含答案解析数据结构习题集含答案⽬录⽬录 (1)选择题 (2)第⼀章绪论 (2)第⼆章线性表 (4)第三章栈和队列 (6)第四章串 (7)第五章数组和⼴义表 (8)第六章树和⼆叉树 (8)第七章图 (11)第⼋章查找 (13)第九章排序 (14)简答题 (19)第⼀章绪论 (19)第⼆章线性表 (24)第三章栈和队列 (26)第四章串 (28)第五章数组和⼴义表 (29)第六章树和⼆叉树 (31)第七章图 (36)第⼋章查找 (38)第九章排序 (39)编程题 (41)第⼀章绪论 (41)第⼆章线性表 (41)第三章栈和队列 (52)第四章串 (52)第五章数组和⼴义表 (52)第六章树和⼆叉树 (52)第七章图 (52)第⼋章查找 (52)第⼀章绪论1.数据结构这门学科是针对什么问题⽽产⽣的?(A )A、针对⾮数值计算的程序设计问题B、针对数值计算的程序设计问题C、数值计算与⾮数值计算的问题都针对D、两者都不针对2.数据结构这门学科的研究内容下⾯选项最准确的是(D )A、研究数据对象和数据之间的关系B、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3.某班级的学⽣成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那么下⾯关于数据对象、数据元素、数据项描述正确的是(C )A、某班级的学⽣成绩表是数据元素,90分是数据项B、某班级的学⽣成绩表是数据对象,90分是数据元素C、某班级的学⽣成绩表是数据对象,90分是数据项D、某班级的学⽣成绩表是数据元素,90分是数据元素4.*数据结构是指(A )。
A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义5.数据在计算机存储器内表⽰时,物理地址与逻辑地址不相同,称之为(C )。
A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构6.算法分析的⽬的是(C )A、找出数据的合理性B、研究算法中的输⼊和输出关系C、分析算法效率以求改进D、分析算法的易懂性和⽂档型性7.算法分析的主要⽅法(A )。
数据结构考试题库(含参考答案)

第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) 的算法在时间上总是优于复杂度nO(2 ) 的算法(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:=1TOn DOFOR j:=1TOn DOx:=x+1;A. O(2n)B. O(n)C. O(n2)D. O(logn 2 )12.程序段FOR i:=n-1DOWNTO1DOFOR 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(n 3)D. O(n 2)【南京理工大学 1998 一、 1(2 分 ) 】13.以下哪个数据结构不是多型数据类型()【中山大学1999一、 3( 1 分)】A.栈B.广义表C.有向图D.字符串14.以下数据结构中,()是非线性数据结构【中山大学1999一、 4】A.树B.字符串C.队D.栈15.下列数据中,()是非线性数据结构。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东南大学1996数据结构试题
试题编号:451
试题名称:数据结构
一:回答下列问题(共46分)
1.线性表(a(1),a(2),……a(n))用顺序映射表示时,a(i)与a(i+1)(1<=i<n)的物理位置相邻吗?链接表示时呢?(5分)
答:用顺序映射表示时,a(i)与a(i+1)(1<=i<n)的物理位置相邻。
链接表示时一般不相邻。
(线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素。
线性表的这种机内表示乘坐线性表的顺序结构或顺序映像,通常称这种存储结构的线性表为顺序表线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素)
2.一棵前序序列为1,2,3,4的二叉树,其中序序列可能是4,1,2,3吗?设一棵二叉树的前序序列为1,2,3,4,5,6,7,8,9,其中序序列为2,3,1,5,4,7,8,6,9,试画出该二叉树.(7分)
答:(1)不可能。
因为,若中序序列是4,1,2,3,则4是根1的左子树,2,3是根1的右子树,在前序序列中4必须出现在2,3的前面,这与给定的前序序列不符。
(2)
3.在模式匹配KMP(Knuth,Morris and Pratt)算法中所用失败函数f的定义中,为什么要求p(1)p(2)……p(f(j))为p(1)p(2)……p(j)两头匹配的真子串?且为最大真子串?(7分)
答:为了滑动尽可能远的距离,比较最小的次数。
主串的第j个字符前边f(j)个字符与模式串的头f(j)个字符匹配,只需从模式串的f(j)+1个字符开始比较即可。
即将模式串向右滑动j- f(j)个位置开始比较。
取最大真子串可以保证滑动尽可能远的距离,比较最小的次数。
4.在union-find问题中,控制union操作的权重(weighting)规则是何含义, 有何效果?控制find 操作的倒塌(collapsing)规则是何含义,有何效果?(7分)
5.堆排序(heap sort)是稳定排序吗?举例说明.(6分)
答:不是稳定排序。
如1,4,4*,调整为大顶堆,变为4,1,4*,然后根与最后一个交换,变为4*,1,(4),再排序4*,1,最终得到1,4*,4的顺序,4和4*的位置发生了变化,排序不稳定。
6.给定输入文件:101,48,19,65,3,74,33,17,21,20,99,53,24,并设记录缓冲区个数k=4,写出基于败路过··走过···需要的时候记得回来看看····因为容易得到所以得不到大家的珍惜·即使这样我们也要
路过··走过···需要的时候记得回来看看····因为容易得到所以得不到大家的珍惜·即使这样我们也要者树的外排序顺串生成算法runs 输出的顺串.(6分)
7.m 阶B 树中,m 大小的确定与什么因素有关?(8分)
与关键字的个数n 有关,深度(层数)不要太大,m 太大也没有很大意义。
二:
设结点结构为:| data | link |,试用一个全局指针p 和某种链接结构实现一个队列,画出示意图,并给出入队和出队deleteq 过程,要求它们的时间复杂性都是O(1)(不计new 和dispose 时间).(10分)
答:指针p 指向链表的尾结点,即可实现队列,从链表头部出队,从链表尾部入队。
typedef struct QNode{
ElemType data;
struct QNode *link;
} QNode, *QueuePtr;
QueuePtr Q, p;
int EnQueue(ElemType e){
QNode *r = (QueuePtr)malloc(sizeof(QNode ));//新结点
If(!r) return 0;
r->data=e; r->link=NULL;
p->link=r;
p=r;
return 1;
}
intDeleteQueue(ElemType e){
If(Q->link ==p) return -1;
QNode *r=Q->link;
e=r->data;
Q->link = r->link;
If(p==r) p= Q->link;
Free(r);
return 1;
} 三:
设有向图G 有n 个点(用1,2,……n 表示),e 条边,写一算法根据G 的邻接表生成反向邻接表,要求时间复杂性为O(n+e).(13分)
void NAdjList (ALGraph G, AdjList verticesB){
int v,w;
ArcNode *p,*q,*r;
//初始化逆邻接表
for(v=0;v<G.vexnum;v++) {
…
verticesB[v].data=G.vertices[v].data;
verticesB[v].firstarc=NULL;
}
//生成各个顶点的链表
for(v=0;v<G.vexnum;v++){
for(p=G.vertices[v].firstarc; p; p=p->nextarc){
w= p->adjvex;
//新建结点q
q=(ArcNode*)malloc(sizeof(ArcNode));
q->adjvex=v;
//头插法建立链表:
q->nextarc= verticesB[w].firstarc;
verticesB[w].firstarc=q;
}
}
}
四:
设二叉树结点结构为:| left | data | bf | right |,定义二叉树结点T的平衡因子bf(T)=h(左)-h(右),写一递归算法确定二叉树tree中所有节点的平衡因子bf,同时返回二叉树tree中非叶结点个数.(15分)
int count0=0; //非叶结点个数
int h_bf(BSTree &T){
int hl,hr;
If(T==Null) return 0;
If(T->lchild==NULL && T->rchild==NULL){ T->bf =0; return 1;} //叶子
hl= h_bf (T->lchild); //左子树高度
hr= h_bf (T->rchild); //右子树高度
T->bf=hl-hr;
count0++;
//printf(“data=%c (%d)”, T->data, T->bf);
return (hl>hr) ? hl+1 : hr+1; //树高
}
五:
设符号表T中的标识符x满足1<=x<=m,且n为对T表的最大插入次数.设计符号表T的表示结构,允许使用O(m+n)空间,并写出T的初始化(init),查找(search),插入(insert)和删除(delete)算法,要求它们的时间复杂性都是O(1).(16分)
#define n 100
typedef int ElemType;
Typedef struct {
ElemType x[n];
int num; //当前数量
}T
Init(T &t){
路过··走过···需要的时候记得回来看看····因为容易得到所以得不到大家的珍惜·即使这样我们也要
For(int i=0;i<n;i++) t.x[i]=0;
t.num=0;
}
Int Search(T t, ElemType x){
If(x<1 || x>m) return -2; //数据不合法
int i;
for(i=0; i<num; i++){
if(t.x[i]==x) break;
}
if(i<num) return i;
return -1; //未找到
}
int Insert(T t, ElemType x){
if(t.num==n) return -3;//表已满
int i=search(t,x);
if(i==-2) return -2;//数据不合法
if(i==-1){
for(i=t.num-1;i>=0;i--){
if(x<t.x[i]) t.x[i+1]=t.x[i];
else break;
}
t.x[i+1]=x; t.num++;
return i+1; //返回插入位置
}
return -1; //数据已存在
}
路过··走过···需要的时候记得回来看看····因为容易得到所以得不到大家的珍惜·即使这样我们也要。