清华大学数据结构试题及答案

合集下载

数据结构答案(清华大学出版)

数据结构答案(清华大学出版)
10
若是N维数组,其中任一元素的地址该如何计算? 若是 维数组,其中任一元素的地址该如何计算? 维数组 低维优先的地址计算公式,该式称为n维数组的映像函数: 低维优先的地址计算公式,该式称为n维数组的映像函数: 优先的地址计算公式
n
0)+ Loc(j1,j2,…jn)=LOC(0,0, 0)+i =1 j )=LOC(0,0,…0)
a11 a12 … a1n ^
… …
am1 am2 … amn ^
^ 注:数组的运算参见下一节实例(稀疏矩阵的转置) 数组的运算参见下一节实例(稀疏矩阵的转置)
13
5.3 矩阵的压缩存储
讨论: 讨论: 1. 什么是压缩存储? 什么是压缩存储? 若多个数据元素的值都相同 则只分配一个元素值的存储空间, 值都相同, 若多个数据元素的值都相同,则只分配一个元素值的存储空间, 且零元素不占存储空间。 且零元素不占存储空间。 2. 所有二维数组(矩阵)都能压缩吗? 所有二维数组(矩阵)都能压缩吗? 未必,要看矩阵是否具备以上压缩条件。 未必,要看矩阵是否具备以上压缩条件。 3. 什么样的矩阵具备以上压缩条件? 什么样的矩阵具备以上压缩条件? 一些特殊矩阵,如:对称矩阵,对角矩阵,三角矩阵,稀疏矩 一些特殊矩阵, 对称矩阵,对角矩阵,三角矩阵, 阵等。 阵等。 4. 什么叫稀疏矩阵? 什么叫稀疏矩阵 稀疏矩阵? 矩阵中非零元素的个数较少(一般小于5% 5%) 矩阵中非零元素的个数较少(一般小于5%) 重点介绍稀疏矩阵的压缩和相应的操作。 重点介绍稀疏矩阵的压缩和相应的操作。
8
无论规定行优先或列优先, 无论规定行优先或列优先,只要知道以下三要素便可随时求出 任一元素的地址(这样数组中的任一元素便可以随机存取! 任一元素的地址(这样数组中的任一元素便可以随机存取!): ①开始结点的存放地址(即基地址) 开始结点的存放地址(即基地址) 维数和每维的上、下界; ②维数和每维的上、下界; ac1,c2 … ac1,d2 ③每个数组元素所占用的单元数 Amn= … aij … ad1,c2 … ad1,d2 则行优先存储时的地址公式为: 行优先存储时的地址公式为: 存储时的地址公式为 LOC(aij)=LOC(ac1,c2)+[(i-c1)*(d2-c2+1)+j-c2)]*L , aij之前的 数组基址 a 本行前面的

《数据结构》期终考试试卷(A)-清华大学

《数据结构》期终考试试卷(A)-清华大学

2010年《数据结构》期终考试试卷(A)班级学号姓名一、简答题(每小题6分,共30分)(1) 假设一个线性链表的类名为linkedList,链表结点的类名为ListNode,它包含两个数据成员data和link。

data存储该结点的数据,link是链接指针。

下面给定一段递归打印一个链表中所有结点中数据的算法:void PrintList (ListNode *L) {if ( L != NULL ) {cout << L->data << endl;PrintList ( L->link );}}试问此程序在什么情况下不实用?给出具体修改后的可实用的程序?(1) 此程序在内存容量不足时不适用。

因为需要一个递归工作栈。

当链表越长,递归工作栈的深度越深,需要的存储越多。

可采用非递归算法节省存储。

void PrintList (ListNode *L) {while ( L != NULL ) {cout << L->data << endl;L = L->link;}}(2) 如果每个结点占用2个磁盘块因而需要2次磁盘访问才能实现读写,那么在一棵有n个关键码的2m阶B树中,每次搜索需要的最大磁盘访问次数是多少?(2) 在2m阶B树中关键码个数n与B树高度h之间的关系为h≤log m ((n+1)/2)+1,那么每次搜索最大磁盘访问次数为2h max = 2log m ((n+1)/2)+2。

(3) 给定一棵保存有n 个关键码的m 阶B 树。

从某一非叶结点中删除一个关键码需要的最大磁盘访问次数是多少?(3) 在m 阶B 树中关键码个数n 与B 树最大高度h 的关系为h = log ⎡m/2⎤((n+1)/2)+1。

若设寻找被删关键码所在非叶结点读盘次数为h ’,被删关键码是结点中的k i ,则从该结点的p i 出发沿最左链到叶结点的读盘次数为h -h ’。

清华大学912-2016

清华大学912-2016
操作系统 1 是非判断,正确打 V,错误打 X(都写完两门了,这时候才说对错应该怎么表示,我前面 都用的汉字囧)
1)8 位 cpu 不能进行线程切换 2)忘了 3)死锁必要条件:互斥访问,占有并等待,非剥夺,循环等待 4)忘了 5)忘了
2 多重选择题 1) 程序和进程的区别 A 程序啥啥啥 B 进程啥啥啥 C 进程是动态啥啥啥 D 程序是动态啥啥啥 2) 忘了就记得选项 C 有些数据 cache 并不能存放 D 多核处理器共享一个高速缓存 3) 忘了 4) 忘了


接口 1:214.1.?.? IP 转换池 20 个 ipv4 地址我记不起来了
Router B
客户机
接口 1:?.?.?.? IP 转换池 20 个 ipv6 地址我记不起来了
Net1
接口 2: 214.1.?.?记不起
接口 2: 198.???记不起
1)路由 B 发 RIP 协议给 A,问 A 会把那个消息发送给 B,在发送的那条后面打√(A 有三个
twist(x->lc->rc); putchar(x->data); twist(忘了); putchar(忘了); } Else{ Twist(忘了); Putchar(忘了); } }
计算机组成原理 1 判断题 1)
2 选择题
3 任何指令的执行部件可以抽象为一个逻辑组件和寄存器的结构,逻辑组件的延迟为 150ps, 寄存器为 10ps,示意图如下
接口,每个接口都给出了 ip 地址,但我想不起来了)
目的 ip 地址
发出端口
路径跳数
发送?
接口 1 发出的地址 1
5
接口 3 发出的地址 3
1
Router B 地址

数据结构习题集答案--清华大学版

数据结构习题集答案--清华大学版

第1章绪论1.1 解:数据是对客观事物的符号表示。

在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。

数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

数据对象是性质相同的数据元素的集合,是数据的一个子集。

数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

存储结构是数据结构在计算机中的表示。

数据类型是一个值的集合和定义在这个值集上的一组操作的总称。

抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。

是对一般数据类型的扩展。

1.2解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。

一般数据类型由具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。

抽象数据类型通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。

在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更高,更能为其他用户提供良好的使用接口。

1.3 解:1.4 解:ADT Complex{数据对象:D={r,i|r,i为实数}数据关系:R={<r,i>}基本操作:InitComplex(&C,re,im)操作结果:构造一个复数C,其实部和虚部分别为re和imDestroyCmoplex(&C)操作结果:销毁复数CGet(C,k,&e)操作结果:用e返回复数C的第k元的值Put(&C,k,e)操作结果:改变复数C的第k元的值为eIsAscending(C)操作结果:如果复数C的两个元素按升序排列,则返回1,否则返回0IsDescending(C)操作结果:如果复数C的两个元素按降序排列,则返回1,否则返回0Max(C,&e)操作结果:用e返回复数C的两个元素中值较大的一个Min(C,&e)操作结果:用e返回复数C的两个元素中值较小的一个}ADT ComplexADT RationalNumber{数据对象:D={s,m|s,m为自然数,且m不为0}数据关系:R={<s,m>}基本操作:InitRationalNumber(&R,s,m)操作结果:构造一个有理数R,其分子和分母分别为s和mDestroyRationalNumber(&R)操作结果:销毁有理数RGet(R,k,&e)操作结果:用e返回有理数R的第k元的值Put(&R,k,e)操作结果:改变有理数R的第k元的值为eIsAscending(R)操作结果:若有理数R的两个元素按升序排列,则返回1,否则返回0IsDescending(R)操作结果:若有理数R的两个元素按降序排列,则返回1,否则返回0Max(R,&e)操作结果:用e返回有理数R的两个元素中值较大的一个Min(R,&e)操作结果:用e返回有理数R的两个元素中值较小的一个}ADT RationalNumber1.6解:(1)exit常用于异常错误处理,它可以强行中断程序的执行,返回操作系统。

清华大学数据结构试题及答案

清华大学数据结构试题及答案

清华大学数据结构试题及答案以下是清华大学数据结构试题及答案:试题一:1. 请解释什么是数据结构。

答案:数据结构是计算机科学中研究数据的组织、存储和管理方式的学科。

它涉及到数据的表示、操作以及与之相关的算法的设计和实现。

2. 请列举常见的数据结构类型。

答案:常见的数据结构类型包括数组、链表、栈、队列、树、图等。

3. 请解释什么是算法。

答案:算法是一系列解决特定问题的指令和计算步骤。

它描述了在给定输入的情况下,如何进行计算并产生所需输出。

4. 请列举一些常见的算法。

答案:常见的算法包括排序算法(如冒泡排序、插入排序、快速排序)、查找算法(如二分查找、哈希查找)、图算法(如深度优先搜索、广度优先搜索)等。

5. 请解释什么是时间复杂度和空间复杂度。

答案:时间复杂度是描述算法执行时间与输入规模之间的关系。

空间复杂度是描述算法所需内存空间与输入规模之间的关系。

试题二:1. 请给出数组和链表的区别。

答案:数组是一块连续的内存空间,元素在内存中按照索引顺序排列。

链表是由节点组成的数据结构,每个节点包含数据和指向下一个节点的指针。

2. 请解释什么是栈和队列。

答案:栈是一种后进先出(LIFO)的数据结构,只允许在栈顶进行插入和删除操作。

队列是一种先进先出(FIFO)的数据结构,允许在队尾插入数据,在队头删除数据。

3. 请给出树和图的区别。

答案:树是一种由节点和边组成的数据结构,每个节点可以有多个子节点。

图是一种由节点和边组成的数据结构,节点之间的关系可以是任意的,包括有向和无向边。

4. 请解释什么是哈希表。

答案:哈希表是一种通过哈希函数将键映射到特定位置的数据结构。

它能够快速地进行插入、删除和查找操作。

5. 请解释什么是递归。

答案:递归是一种通过调用自身的方法或函数来解决问题的编程技巧。

在递归过程中,问题会被拆分成一个或多个规模较小的子问题,直到达到基本情况。

以上就是清华大学数据结构试题及答案,希望对您有所帮助。

清华大学数据结构试题及答案-格式整理版

清华大学数据结构试题及答案-格式整理版

一、单选题(每题 2 分,共20分)1.对一个算法的评价,不包括如下()方面的内容。

A.健壮性和可读性 B.并行性 C.正确性 D.时空复杂度2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。

A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3对线性表,在下列哪种情况下应当采用链表表示?( )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35. AOV网是一种()。

A.有向图 B.无向图 C.无向无环图 D.有向无环图6采用开放定址法处理散列表的冲突时,其平均查找长度()。

A.低于链接法处理冲突 B. 高于链接法处理冲突C.与链接法处理冲突相同 D.高于二分查找7.若需要利用形参直接访问实参时,应将形参变量说明为()参数。

A.值 B.函数 C.指针 D.引用8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。

A.行号 B.列号 C.元素值 D.非零元素个数9.快速排序在最坏情况下的时间复杂度为()。

A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2)10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。

A. O(n)B. O(1)C. O(log2n)D. O(n2)二、运算题(每题6 分,共24分)1.数据结构是指数据及其相互之间的______________。

当结点之间存在M对N(M:N)的联系时,称这种结构为_____________________。

清华大学出版社数据结构(C 版)(第2版)课后习题答案最全整理

清华大学出版社数据结构(C  版)(第2版)课后习题答案最全整理

第1 章绪论课后习题讲解1. 填空⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

【解答】数据元素⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。

【解答】数据项,数据元素【分析】数据结构指的是数据元素以及数据元素之间的关系。

⑶从逻辑关系上讲,数据结构主要分为()、()、()和()。

【解答】集合,线性结构,树结构,图结构⑷数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。

【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系⑸算法具有五个特性,分别是()、()、()、()、()。

【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性⑹算法的描述方法通常有()、()、()和()四种,其中,()被称为算法语言。

【解答】自然语言,程序设计语言,流程图,伪代码,伪代码⑺在一般情况下,一个算法的时间复杂度是()的函数。

【解答】问题规模⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。

【解答】Ο(1),Ο(nlog2n)【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。

2. 选择题⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。

A 线性结构B 非线性结构C 存储位置D 指针【解答】C,D【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。

⑵假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。

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

数据结构(C语言版)清华大学出版社课后题1-5章答案

数据结构(C语言版)清华大学出版社课后题1-5章答案

数据结构(C语言版)清华大学出版社课后题1-5章答案第一章选择题1.A2.B3.C4.D5.B6.C第二章选择题1.A2.D3.D4.C5.A6.C7.B8.B9.D 10.D应用题1.应该选用链接存储表示。

如果才用顺序表示法,必须在一个连续的可用空间中为这N 个表分配空间。

初始时候因为不知道哪个表增长得快,必须平均分配空间。

在程序运行过程中,有的表占用的空间增长得快,有的表占用空间增长得慢,有的表很快就使用完了分配给它的空间,有的表才占用了少许空间,在进行元素的插入时候就必须成片的移动其他表的空间,以空出位置进行插入;在元素删除时为填补空白,也可能移动许多元素。

这个处理过程及其繁琐和低效。

如果采用链接存储,一个表的空间可以连续也可以不连续。

表的增长通过动态分配内存得以解决,只要存储器未满,就不会发生表溢出;表的收缩可以通过动态存储释放实现,释放的空间还可以在以后动态分配给其他的存储需求,非常灵活方便。

对于N个表(包括表的总数可能变化)共存的情形,处理十分简单快捷,插入、删除时间复杂度为O(1)。

所以才用链接存储表示较好。

2.一般来说,链式存储结构克服了顺序存储结构的三个缺点。

首先,插入、删除操作不需要移动元素,只修改指针;其次,不需要预先分配空间,可根据需要动态申请空间;其三,表容量只受到内存空间的限制。

其缺点是因为指针增加了空间开销,当空间不允许时,就不能克服顺序存储的缺点。

3.顺序结构时ai与ai+1的物理位置相邻,链表结构时两者的位置不要求一定相邻。

7.在顺序表中插入和删除一个节点需平均移动全表一半的节点。

具体的移动次数取决于所插入和删除的节点的位置i和全表的长度n这两个因素。

算法设计题1.分析:遍历整个顺序表,用k记录在x~y之间元素的个数,k的初始值为0。

对于当前遍历到的元素,若其值在x~y之间,则前移k个位置;否则执行++k。

这样每个不在x~y之间的元素仅仅移动一次,所以效率较高。

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

一、单选题(每题 2 分,共20分)1. 1.对一个算法的评价,不包括如下(B )方面的内容。

A.健壮性和可读性B.并行性C.正确性D.时空复杂度2. 2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。

A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3. 3.对线性表,在下列哪种情况下应当采用链表表示?( )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4. 4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( C )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35. 5.AOV网是一种()。

A.有向图B.无向图C.无向无环图D.有向无环图6. 6.采用开放定址法处理散列表的冲突时,其平均查找长度()。

A.低于链接法处理冲突 B. 高于链接法处理冲突C.与链接法处理冲突相同D.高于二分查找7.7.若需要利用形参直接访问实参时,应将形参变量说明为()参数。

A.值B.函数C.指针D.引用8.8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。

A.行号B.列号C.元素值D.非零元素个数9.9.快速排序在最坏情况下的时间复杂度为()。

A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2)10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。

A. O(n)B. O(1)C. O(log2n)D. O(n2)二、二、运算题(每题 6 分,共24分)1. 1.数据结构是指数据及其相互之间的______________。

当结点之间存在M对N(M:N)的联系时,称这种结构为_____________________。

2. 2.队列的插入操作是在队列的___尾______进行,删除操作是在队列的____首______进行。

3. 3.当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则表示栈满的条件是___top==0___(要超出才为满)_______________。

4. 4.对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度为_________,在表尾插入元素的时间复杂度为____________。

5. 5.设W为一个二维数组,其每个数据元素占用4个字节,行下标i从0到7 ,列下标j从0到3 ,则二维数组W的数据元素共占用_______个字节。

W中第6 行的元素和第4 列的元素共占用_________个字节。

若按行顺序存放二维数组W,其起始地址为100,则二维数组元素W[6,3]的起始地址为__________。

6. 6.广义表A= (a,(a,b),((a,b),c)),则它的深度为____________,它的长度为____________。

7.7.二叉树是指度为2的____________________树。

一棵结点数为N的二叉树,其所有结点的度的总和是_____________。

8.8.对一棵二叉搜索树进行中序遍历时,得到的结点序列是一个______________。

对一棵由算术表达式组成的二叉语法树进行后序遍历得到的结点序列是该算术表达式的__________________。

9. 9. 对于一棵具有n 个结点的二叉树,用二叉链表存储时,其指针总数为_____________个,其中_______________个用于指向孩子,_________________个指针是空闲的。

10. 10. 若对一棵完全二叉树从0开始进行结点的编号,并按此编号把它顺序存储到一维数组A 中,即编号为0的结点存储到A[0]中。

其余类推,则A[ i ]元素的左孩子元素为________,右孩子元素为_______________,双亲元素为____________。

11. 11. 在线性表的散列存储中,处理冲突的常用方法有________________________和_____________________________两种。

12. 12. 当待排序的记录数较大,排序码较随机且对稳定性不作要求时,宜采用_______________排序;当待排序的记录数较大,存储空间允许且要求排序是稳定时,宜采用________________________排序。

三、 三、 运算题(每题6分,共24分) 1. 1. 已知一个6⨯5稀疏矩阵如下所示,试:(1) (1)写出它的三元组线性表;(2) (2) 给出三元组线性表的顺序存储表示。

2. 2. 设有一个输入数据的序列是 { 46, 25, 78, 62, 12, 80 }, 试画出从空树起,逐个输入各个数据而生成的二叉搜索树。

3. 3. 对于图6所示的有向图若存储它采用邻接表,并且每个顶点邻接表中的边结点都是按照终点序号从小到大的次序链接的,试写出:(1) 从顶点①出发进行深度优先搜索所得到的深度优先生成树; (2) 从顶点②出发进行广度优先搜索所得到的广度优先生成树; 4. 4. 已知一个图的顶点集V 和边集E 分别为:V={1,2,3,4,5,6,7};E={<2,1>,<3,2>,<3,6>,<4,3>,<4,5>,<4,6>,<5,1>,<5,7>,<6,1>,<6,2>,<6,5>}; 若存储它采用邻接表,并且每个顶点邻接表中的边结点都是按照终点序号从小到大的次序链接的,按主教材中介绍的拓朴排序算法进行排序,试给出得到的拓朴排序的序列。

四、 四、 阅读算法(每题7分,共14分) 1. 1. int Prime(int n){int i=1;int x=(int) sqrt(n);while (++i<=x)⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡--007000005200000001000000100图6if (n%i==0) break;if (i>x) return 1;else return 0;}(1)(1)指出该算法的功能;(2)(2)该算法的时间复杂度是多少?2. 2.写出下述算法的功能:void AJ(adjlist GL, int i, int n){Queue Q;InitQueue(Q);cout<<i<<' ';visited[i]=true;QInsert(Q,i);while(!QueueEmpty(Q)) {int k=QDelete(Q);edgenode* p=GL[k];while(p!=NULL){int j=p->adjvex;if(!visited[j]){cout<<j<<' ';visited[j]=true;QInsert(Q,j);}p=p->next;}}}五、五、算法填空(共8分)如下为二分查找的非递归算法,试将其填写完整。

Int Binsch(ElemType A[ ],int n,KeyType K){int low=0;int high=n-1;while (low<=high){int mid=_______________________________;if (K==A[mid].key) return mid; //查找成功,返回元素的下标else if (K<[mid].key)______________________________________; //在左子表上继续查找else __________________________________; //在右子表上继续查找}return -1; //查找失败,返回-1 } 六、 六、 编写算法(共8分)HL 是单链表的头指针,试写出删除头结点的算法。

ElemType DeleFront(LNode * & HL)参考答案一、 一、 单选题(每题2分,共20分) 1.B 2.A 3.B 4.C 5.D 6.B 7.D 8.A 9.D 10.C 二、 二、 填空题(每空1分,共26分) 1. 1. 联系 图(或图结构) 2. 2. 尾 首 3. 3. top==04. 4. O (1) O (n )5. 5. 128 44 1086. 6. 3 37. 7. 有序 n-18. 8. 有序序列 后缀表达式(或逆波兰式)9. 9. 2n n-1 n+1 10. 10. 2i+1 2i+2 (i-1)/211. 11. 开放定址法 链接法12. 12. 快速 归并 三、 三、 运算题(每题6分,共24分)1. 1. (1) ((1,5,1),(3,2,-1),(4,5,-2),(5,1,5),(6,3,7)) (3分) (2) 三元组线性表的顺序存储表示如图7示。

2. 2. 如图8所示。

3. 3. DFS :①②③④⑤BFS :②③④⑤①4. 4. 拓朴排序为: 4 3 6 5 7 2 1 四、 四、 阅读算法(每题7分,共14分) 1. 1. (1) 判断n 是否是素数(或质数)(2)O (n )2. 2. 功能为:从初始点v i 出发广度优先搜索由邻接表GL 所表示的图。

五、 五、 算法填空(8 分)(low+high)/2 high=mid-1 low=mid+1 六、 六、 编写算法(8分) ElemType DeleFront(LNode * & HL) {if (HL==NULL){ cerr<<"空表"<<endl;exit(1);6 5 5 1 5 13 2 -14 5 -2 5 1 5 6 3 7图7图8}LNode* p=HL;HL=HL->next;ElemType temp=p->data;delete p;return temp;}一、一、单选题(每题 2 分,共20分)1. 1.栈和队列的共同特点是( )。

A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2. 2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3. 3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4. 4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。

相关文档
最新文档