数据结构-合肥工业大学 5
数据结构考研习题-第五章数组和广义表
第 5 章数组和广义表
一、选择题
为第一元素,其
1.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a
11
的地址为()。【燕山大学 2001 一、2
存储地址为1,每个元素占一个地址空间,则a
85
(2分)】
A. 13
B. 33
C. 18
D. 40
2. 有一个二维数组A[1:6,0:7] 每个数组元素用相邻的6个字节存储,存储器按字节编址,
那么这个数组的体积是(①)个字节。假设存储数组元素A[1,0]的第一个字节的地址是0,
则存储数组A的最后一个元素的第一个字节的地址是(②)。若按行存储,则A[2,4]的第
一个字节的地址是(③)。若按列存储,则A[5,7]的第一个字节的地址是(④)。就一般情
况而言,当(⑤)时,按行存储的A[I,J]地址与按列存储的A[J,I]地址相等。供选择的
答案:【上海海运学院 1998 二、2 (5分)】
①-④: A.12 B. 66 C. 72 D. 96 E. 114 F. 120
G. 156 H. 234 I. 276 J. 282 K. 283 L. 288
⑤: A.行与列的上界相同 B. 行与列的下界相同
C. 行与列的上、下界都相同
D. 行的元素个数与列的元素个数相同
3. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1 到8 ,j的值为1 到10,
数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( )。
A. BA+141
B. BA+180
C. BA+222
D. BA+225
【南京理工大学 1997 一、8 (2分)】
数据结构考研真题及其答案
一、选择题
1. 算法的计算量的大小称为计算的( B )。【北京邮电大学2000 二、3 (20/8分)】
A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于(C )【中科院计算所 1998 二、1 (2分)】
A.问题的规模 B. 待处理数据的初态 C. A和B
3.计算机算法指的是(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)的算法在时间上总是优于复杂度O(2n)的算法
(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低4
合肥工业大学数据结构试验一实验报告
计算机与信息学院
数据结构实验报告
专业班级
学生姓名及学号
课程教学班号
任课教师
实验指导教师
实验地点
2015 ~2016 学年第 2 学期
说明
实验报告是关于实验教学内容、过程及效果的记录和总结,因此,应注意以下事项和要求:
1.每个实验单元在4页的篇幅内完成一份报告。“实验单元”指按照实验指导书规定的实验内容。若篇幅不够,可另附纸。
2、各实验的预习部分的内容是进入实验室做实验的必要条件,请按要求做好预习。
3.实验报告要求:书写工整规范,语言表达清楚,数据和程序真实。理论联系实际,认真分析实验中出现的问题与现象,总结经验。
4.参加实验的每位同学应独立完成实验报告的撰写,其中程序或相关的设计图纸也可以采用打印等方式粘贴到报告中。严禁抄袭或拷贝,否则,一经查实,按作弊论取,并取消理论课考试资格。
5.实验报告作为评定实验成绩的依据。
实验序号及名称:实验一单链表实验
实验时间∶2016年 5 月
二、实验内容与步骤(过程及数据记录):
<1>求链表中第i个结点的指针(函数),若不存在,则返回NULL。实验测试数据基本要求:
第一组数据:链表长度n≥10,i分别为5,n,0,n+1,n+2
第二组数据:链表长度n=0,i分别为0,2
node* list::address(int i)
{
node *p = head->next;
int n = 1;
while (n != i&&p != NULL)
{
p = p->next;
n++;
}
if (p!=NULL) return p;
else return NULL;
数据结构考研真题及其答案
一、选择题
1. 算法的计算量的大小称为计算的( B )。【北京邮电大学2000 二、3 (20/8分)】
A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于(C )【中科院计算所 1998 二、1 (2分)】
A.问题的规模 B. 待处理数据的初态 C. A和B
3.计算机算法指的是(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)的算法在时间上总是优于复杂度O(2n)的算法
(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低4
合肥工业大学数据结构试验报告
数据结构实验报告
实验三栈的实验
1.实验目标
(1)熟练掌握栈的顺序存储结构和链式存储结构。
(2)熟练掌握栈的有关算法设计,并在顺序栈和链栈上实现。
(3)根据具体给定的需求,合理设计并实现相关结构和算法。
2.实验内容和要求
(1)顺序栈结构和运算定义,算法的实现以库文件方式实现,不得在测试主程序中直接实现;
(2)实验程序有较好可读性,各运算和变量的命名直观易懂,符合软件工程要求;
(3)程序有适当的注释。
3.数据结构设计
(1)以结构体,类为基础,和函数调用实现各实验;
4.算法设计
(除书上给出的基本运算(这部分不必给出设计思想),其它实验内容要给出算法设计思想)
5.运行和测试
(1)各个实验运行正常,符合实验要求;
(2)达到实验目的。
6.总结和心得
(1)通过实验,我熟练掌握了栈的顺序存储结构和链式存储结构。
(2)通过实验,熟练掌握栈的有关算法设计,并在顺序栈和链栈上实现。
(3)通过实验,我理解线性表的真实意思,能够运用一些基本的题目。
(4)通过实验,让我了解计算机的一些机制。
(5)通过实验,我学到了很多知识,在发现问题,解决问题时,我学会了怎样处理这些问题,同时也创造许多自己的思想。
[7. 附录]
(源代码清单。纸质报告不做要求。电子报告,可直接附源文件,删除编译生成的所有文件)
<1>利用顺序栈实现将10进制数转换为16进制数。
第一组数据:4
第二组数据:11
第三组数据:254
第四组数据:1357
Cpp1.cpp
<2>对一个合法的数学表达式来说,其中的各大小括号“{”,“}”,“[”,“]”,“(”和“)”应是相互匹配的。设计算法对以字符串形式读入的表达式S,判断其中的各括号是否是匹配的。
合肥工业大学《数据结构》课件 ch1--概论
列,必须满足(也称为算法的五大特性):
① 输入:0或n个输入(算法开始前的初始量) ② 输出:1或n个输出,它们是算法执行完后的结果。 ③ 有穷性:指令的执行次数必须是有限的。 ④ 确定性:指令的描述是确定的, 无二义性的。使
共:3n+2次
【例4】 for(i=1; i<n; i++) for(j=1;j<=i;j++){x++;}
【分析】双重循环,且内层循环次数变化。时间性 能取决于内存循环次数的数量级。估算内层循环 次数:
i=1,内层循环执行1次(j:1--1) i=2,内层循环执行2次(j:1--2) i=3,内层循环执行3次(j:1--3) … i=n-1,内层循环执行n-1次(j:1--n-1)
4. 计算机语言描述
用一种计算机语言来表达算法,事实就是编写程序。 特点:准确、严格,但死板。
3. 数量级的大O记法
如果 f(n) 和 g(n) 是同一数量级的,记为 f(n)=O(g(n)),称此形式为大 O 记法。
常见时间复杂度从小到大依次为:
< < < O(1) O(log2n)
O(n)
内层循环执行总次数:n(n-1)/2 时间复杂度:O(n2)
2022年合肥工业大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年合肥工业大学计算机科学与技术专业《数据结构与算法》科目
期末试卷A(有答案)
一、选择题
1、若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是()。
A.快速排序
B.堆排序
C.归并排序
D.直接插入排序
2、用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j沿链移动的操作为()。
A.j=r[j].next
B.j=j+l
C.j=j->next
D.j=r[j]->next
3、若线性表最常用的操作是存取第i个元素及其前驱和后继元素的值,为节省时间应采用的存储方式()。
A.单链表
B.双向链表
C.单循环链表
D.顺序表
4、下面关于串的叙述中,不正确的是()。
A.串是字符的有限序列
B.空串是由空格构成的串
C.模式匹配是串的一种重要运算
D.串既可以采用顺序存储,也可以采用链式存储
5、循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是()。
A.(rear-front+m)%m
B.rear-front+1
C.rear-front-1
D.rear-front
6、下列选项中,不能构成折半查找中关键字比较序列的是()。
A.500,200,450,180 B.500,450,200,180
C.180,500,200,450 D.180,200,500,450
7、下列叙述中,不符合m阶B树定义要求的是()。
A.根结点最多有m棵子树 B.所有叶结点都在同一层上
C.各结点内关键字均升序或降序排列 D.叶结点之间通过指针链接
合肥工业大学计算机体系结构实验报告
实验一主板架构的测试
一、实验目的及要求
了解Internet系列主板的基本构架
二、实验设备(环境)及要求
多核计算机,windows os ,CPU-Z,GPU-Z。
三、实验内容与步骤
1.执行计算机硬件检测程序CPU-Z,GPU-Z;
2.记录所用计算机的CPU ID号,Cache大小,指令集,CPU型号,电压,内存,主板,SPD和GPU等所有显示的信息;
3.在任务和设备管理器中查看CPU是否为双核?
四、实验结果与数据处理
1.执行计算机硬件检测程序CPU-Z,GPU-Z;
2.记录所用计算机的CPU ID号,Cache大小,指令集,CPU型号,电压,内存,主板,SPD和GPU等所有显示的信息;
3.在任务和设备管理器中查看CPU是否为双核?在任务管理器中可以看到CPU为双核:
在设备管理器中可以看到CPU为4线程:
五、分析与讨论
结论:对电脑的构架有的更深的了解。
1.此台电脑CPU是Inter i5,3.20GHz,三级缓存;
2.从CPU-Z中的核心时钟频率可以判断计算机的性能,时钟频率越高越好;
3.从任务管理器和系统属性上并不能准确的判断CPU的核数,需要用CPU-Z进行检测才能真正确定计算机的核数。
实验一熟悉WinDLX的使用
一、实验目的
1.熟练掌握WinDLX模拟器的操作和使用
2.熟悉DLX指令集结构及其特点
二、实验内容
1.用WinDLX模拟器执行求阶乘程序fact.s。这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。
数据结构树和二叉树习题(有答案)
E F D G
A
B
/
+ +
* - C
* 第六章
树和二叉树
一、选择题
1.已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为
ABC*+DE/-,其前缀形式为
( )
A .-A+B*C/DE B. -A+B*CD/E C .-+*ABC/DE
D. -+A*BC/DE
【北京航空航天大学 1999 一、3 (2分)】
2.算术表达式
a+b*(c+d/e )转为后缀表达式后为(
)【中山大学 1999 一、5】
A .ab+cde/*
B .abcde/+*+
C .abcde/*++ D
.abcde*/++
3. 设有一表示算术表达式的二叉树(见下图)
,
它所表示的算术表达式是()
【南京理工大学
1999 一、20(2分)】
A. A*B+C/(D*E)+(F-G)
B. (A*B+C)/(D*E)+(F-G)
C. (A*B+C)/(D*E+(F-G ))
D. A*B+C/D*E+F-G
4. 设树T 的度为4,其中度为1,2,3和4的结点个数分别为
4,2,1,1 则T 中的叶子
数为(
)
A .5 B
.6 C
.7
D .8
【南京理工大学 2000 一、8 (1.5分)】5. 在下述结论中,正确的是(
)【南京理工大学 1999 一、4 (1分)】①只有一个结点的二叉树的度为0; ②二叉树的度为
2;
③二叉树的左右子树可任意
交换;
④深度为K 的完全二叉树的结点个数小于或等于深度相同的满二叉树。A .①②③ B .②③④ C
.②④
D .①④
6. 设森林F 对应的二叉树为
B ,它有m 个结点,B 的根为p,p 的右子树结点个数为
合肥工业大学数据库期末考试试题及答案
合肥工业大学数据库期末考试试题及答案
一、填空题(每空0.5分,共12分)
1、数据管理是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。
2、数据模型有概念层数据模型和组织层数据模型两类模型。数据模型通常由数据结构、数据操作和完整性约束三部分组成。
3、数据库系统一般由数据库、软件系统、硬件环境和人员构成。
4、关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。
5、传统的集合运算是二目运算包括并、差、交、笛卡尔积四种运算。专
、连接等。
6、支持SQL的同样支持数据库三级模式结构,其中外模式对应于视图和
,内模式对应于基本表和表的索引。
7、视图机制间接地实现支持存取谓词的用户权限定义。
8、审计一般可以分为财政财务审计和经济效益审计。
9、关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外码。
二、简答题(每小题4分,共20分)
1、简述关系模型的3个组成部分。
关系模型由数据结构、数据操作、和完整性约束三部分组成
2、在SQL语言中,SELECT语句的一般格式
SELECT [ALL|DISTINCT] <目标列表达式> [别名] [,<目标列表达式> [别名]…]
FROM <表名或视图名> [别名] [,<表名或视图名> [别名]…]
[WHERE <条件表达式>]
[GROUP BY 列名 [,列名…]
[HAVING <条件表达式>]]
[ORDER BY <列名> [ASC|DESC] [,<列名> [ASC|DESC]…];
合工大数据结构07-树和二叉树.
H
10 J
11 12 K L
合肥工业大学 计算机与信息学院
13
7.2 二叉树的定义、性质和存储结构
1 A 2 4 D 8 H 9 I 10 J B 5 E 11 12 K L 6 F 13 M 3 C 7 G
性质4:有n个( n≥1)结点的完全二叉树的高度 n 1. 。 为 log 2 性质5:对完全二叉树进行编号,则对编号为i的结点, 若存在左孩子结点,则其左孩子结点的编号为2i, 若存在右孩子结点,则其右孩子结点的编号为2i+1, 若存在父结点,则其父结点的编号为 i / 2 。
25
中序遍历二叉树T 若T不空,则: 中序访问其左子树; 访问根; 中序访问其右子树。
合肥工业大学 计算机与信息学院
7.3 二叉树的遍历及其应用
后序遍历二叉树T 若T不空,则: 后序访问其左子树; 后序访问其右子树。 访问根;
void postorder (bnode *t) { if(t!=NULL) { postorder (t->lchild);
中序:CBDAGEF 后序:CDBGFEA
A B C D G E F
合肥工业大学 计算机与信息学院
24
7.3 二叉树的遍历及其应用
7.3.2遍历算法 遍历方法
先序遍历二叉树T 若T不空,则: 访问根; 先序访问其左子树; 先序访问其右子树
合肥工业大学计算机科学与技术专业指导性教学计划
合肥工业大学计算机科学与技术专业指导性教学计划
一、培养目的与培养目标
培养目的:
本专业培养适应国家和地方经济发展及国际竞争需要,德智体全面发展,知识结构合理,具有良好的人文素质、科学素养、应用能力和创新意识的计算机工程高级专门人才。培养的毕业生能够能在信息技术产业和单位尤其是嵌入式系统、数字媒体、软件工程、网络工程和数据科学等领域从事信息科学与技术的应用、设计、开发、研究及管理等方面的工作。
培养目标:
LO1)热爱社会主义祖国,拥护共产党的领导,掌握马列主义、毛泽东思想和邓小平理论的基本原理;愿为社会主义现代化建设服务,为人民服务;有为国家富强、民族昌盛而奋斗的志向和责任感;具有敬业爱岗、艰苦求实、热爱劳动、遵纪守法、团结合作的品质;具有良好的思想品德、社会公德和职业道德。
LO2)积极参加社会实践,走正确成长的道路。受到必要的军事训练,能够同群众结合,理论联系实际,实事求是,热爱劳动。懂得社会主义民主和法制,遵纪守法,举止文明,有“勤奋、严谨、求实、尚新”的良好作风。
LO3)具有从事工程工作所需的相关数学、自然科学知识以及一定的经济管理知识;掌握扎实的工程基础知识和本专业的基本理论知识,了解本专业的前沿发展现状和趋势,具有一定的专业知识、相关的工程技术知识和技术经济、工业管理知识。
LO4)具有综合运用所学科学理论和技术手段分析并解决工程问题的基本能力;具有从事信息产业所必需的运算、实验、测试、信息安全应用等技能;具有独立获取知识、提出问题、分析问题和解决问题的基本能力以及具有较强开拓创新的精神,具备一定的社会活动能力,具有从事本专业业务工作的能力,具备适应相关领域专业业务工作的基本能力与素质,具有工程经济观点,受到工程设计方法和科学研究方法的初步训练。
合肥工业大学《数据结构》课件 ch5--哈夫曼树
哈夫曼树中,所有左分支对应的边(结点到 其左孩子的边)上标记‘0’,右分支对应 的边(结点到其右孩子的边)上标记 ‘1’; (反之亦可)
从根结点到每个叶子结点,经过边的 0、1 组合起来即为此叶结点(字符)的编码。
报文前缀码长度 = 哈夫曼树的带权路径长度 WPL
路径长度(边数)=编码位数
【例】报文 “ABAACCBADCA” A、B、C、D 的出现频率分别为: 5、2、3、 1
ABCD
523 1
Huffman 编码 A: 0 B: 110 C: 10 D: 111
11
0
1
A5
6
0
1
C3
3
0
1
2
1
B
D
等长编码总长度:22bit
怎么解决这个问题呢 – 前缀编码
前缀编码
不等长编码中,任一个编码不是另一个编码 的前缀。即:短编码不能是任何长编码的前 缀。
前缀编码可以保证译码的唯一性。
哈夫曼编码(一种前缀压缩编码)
设电文使用了 n 个不同字符;
统计电文中各种字符 ( n 种 ) 出现的次数Fra Baidu bibliotek(频率);
用这 n 个字符作为根结点,出现的次数 (频率)作为权值,构成 n 棵二叉树(只 有根结点);
2. 几个概念
学生成绩管理系统-合肥工业大学
“数据结构与算法”
课程设计报告
设计题目学生成绩管理系统
姓名
学号
专业计算机科学与技术
班级12-01班
完成日期2014.06.27
(一)需求和规格说明
主要功能是对批量学生的各门成绩进行录入、修改、查询、统计等,要求方便快速。记录学生的学号、姓名、班级、性别、联系电话以及课程和成绩;可以对学生的成绩按学号和姓名进行查寻;输出显示学生成绩;并实现排序、统计及格率和优秀率功能。
编程任务:
(1)界面基本要求:
****************************
学生成绩管理系统
****************************
************************************
** F1 --帮助 **
** F2 --输入数据并存入文件 **
** F3 --根据学号查询成绩 **
** F4 --根据姓名查询成绩 **
** F5 --输出文件内容 **
** F6 –成绩排序 **
** F7 --统计及格和优秀人数 **
** ESC--退出系统 **
************************************
另:提倡用MFC的对话框做简单的输入输出交互界面。
(2)功能要求:
1)帮助:系统使用方法的相关信息。
2)输入数据并存入文件:输入相关信息,并实现文件流的读写操作。
3)根据学号查询成绩:输入学号,查询学生的各门成绩
4)根据姓名查询成绩:输入姓名,查询学生的各门成绩
5)输出文件内容:屏幕输出显示所有学生的成绩
6) 成绩排序:对某门成绩或总分进行快速排序,显示、保存
过河问题,数据结构
数
据
结
构
课程设计报告
1.问题描述(第27题)
有一人要将自己的兔子、蔬菜和狐狸等三件物品运过河。但过河所用的船每次只能装其中的两件,而这三件物品之间又存在一定的制约关系:兔子不能单独和狐狸以及不能和蔬菜在一起,因为狐狸要吃兔子,兔子也能吃蔬菜。试构造出问题的模型,并编程实现这一问题的求解。
2、模型表示
农夫要把三件物品运过河,但三个物品之间又有一定的制约关系。因此河的两岸,可以用几个状态来表示。那么为了能够把物品安全的运过河,河两岸的状态可以表示为:
用1表示蔬菜,2表示兔子,3表示狐狸,0表示移走了
河的此岸河的彼岸
(1,2,3) (0,0,0)
(1,0,3) (0,2,0)
(0,0,3) (1,2,0)
(0,2,3) (1,0,0)
(0,2,0) (1,0,3)
(0,0,0) (1,2,3)
为了能够把河两岸的状态正确的表示出来,那么首要解决的问题就是如何确定移走和带回。设计一个函数来确定带回那个权值(1,2,3,0),这样可以形成河两岸的几种状态。(1,2,0)、(0,2,3)、(1,2,3)在农夫不在的情况下均是不稳定状态需要移走或者带回。兔子对于蔬菜和狐狸两个量均有影响。而我们可以观察到(1,0,3)在
农夫不在的情况下是个稳定的状态,从而可以确定移走三个物品的路径了:兔子过去;没有东西回来.白菜过去;兔子回来.狼过去;没有东西回来.兔子过去;没有东西回来.
3、算法的思想描述
通过对河两岸状态的判断,确定移走哪个、带回哪个。因此这就需要一个功能函数int begin(int first,int second,int third,int number)来实现这个功能。在实现此函数的过程中,对剩余量进行判断,用switch()选择性的语句。河的此岸还剩三个的时候,直间返回中间量,即兔子;河的此岸还剩两个的时候,分三种情况:(1)有兔子、狼时,返回狼。(2)不移走时,相当于回到初始状态,因为兔子变量对其他两个均有影响。(3)否则直接返回,对其进行操作;河的此岸还剩一个的时候,即狼,然后过河。在主函数里用minus_1表示移走物品的标记,minus-2表示带回的下标,number表示河的此岸还没移走的数量,loop两岸交换权值的中间变量。用一个二维数组name[4][10]存储物品的名字。然后通过一个while()循环语句,同时用switch()选择性语句来分别修改河两岸的状态权值。最后输出最终的结果,从而实现问题的求解。
数据结构1800道题!最全的!
目录
线性表 (1)
栈和队列 (6)
串 (8)
数组和广义表 (10)
树和二叉树 (13)
图 (21)
集合 (26)
排序 (29)
1.假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。
【北京大学 1998 三、1 (5分)】
类似本题的另外叙述有:
(1)设有两个无头结点的单链表,头指针分别为ha,hb,链中有数据域data,链域next,两链表的数据都按递增序存放,现要求将hb表归到ha表中,且归并后ha仍递增序,归并中ha表中已有的数据若hb中也有,则hb中的数据不归并到ha中,hb的链表在算法中不允许破坏。【南京理工大学1997 四、3(15分)】
PROCEDURE merge(ha,hb);
(2)已知头指针分别为la和lb 的带头结点的单链表中,结点按元素值非递减有序排列。写出将la 和 lb 两链表归并成一个结点按元素值非递减有序排列的单链表(其头指针为 lc),并计算算法的时间复杂度。【燕山大学 1998 五(20分)】
2. 图(编者略)中带头结点且头指针为ha和hb的两线性表A和B 分别表示两个集合。两表中的元素皆为递增有序。请写一算法求A和B的并集AUB。要求该并集中的元素仍保持递增有序。且要利用A和B的原有结点空间。【北京邮电大学 1992 二(15分)】
类似本题的另外叙述有:
(1) 已知递增有序的两个单链表A,B分别存储了一个集合。设计算法实现求两个集合的并集的运算A:=A∪B 【合肥工业大学 1999 五、1(8分)】