严蔚敏版数据结构复习题

合集下载

严蔚敏 数据结构课后习题及答案解析

严蔚敏 数据结构课后习题及答案解析

第一章绪论一、选择题1.组成数据的基本单位是()(A)数据项(B)数据类型(C)数据元素(D)数据变量2.数据结构是研究数据的()以及它们之间的相互关系。

(A)理想结构,物理结构(B)理想结构,抽象结构(C)物理结构,逻辑结构(D)抽象结构,逻辑结构3.在数据结构中,从逻辑上可以把数据结构分成()(A)动态结构和静态结构(B)紧凑结构和非紧凑结构(C)线性结构和非线性结构(D)内部结构和外部结构4.数据结构是一门研究非数值计算的程序设计问题中计算机的(①)以及它们之间的(②)和运算等的学科。

①(A)数据元素(B)计算方法(C)逻辑存储(D)数据映像②(A)结构(B)关系(C)运算(D)算法5.算法分析的目的是()。

(A)找出数据结构的合理性(B)研究算法中的输入和输出的关系(C)分析算法的效率以求改进(D)分析算法的易懂性和文档性6.计算机算法指的是(①),它必须具备输入、输出和(②)等5个特性。

①(A)计算方法(B)排序方法(C)解决问题的有限运算序列(D)调度方法②(A)可执行性、可移植性和可扩充性(B)可行性、确定性和有穷性(C)确定性、有穷性和稳定性(D)易读性、稳定性和安全性二、判断题1.数据的机内表示称为数据的存储结构。

()2.算法就是程序。

()3.数据元素是数据的最小单位。

()4.算法的五个特性为:有穷性、输入、输出、完成性和确定性。

()5.算法的时间复杂度取决于问题的规模和待处理数据的初态。

()三、填空题1.数据逻辑结构包括________、________、_________ 和_________四种类型,其中树形结构和图形结构合称为_____。

2.在线性结构中,第一个结点____前驱结点,其余每个结点有且只有______个前驱结点;最后一个结点______后续结点,其余每个结点有且只有_______个后续结点。

3.在树形结构中,树根结点没有_______结点,其余每个结点有且只有_______个前驱结点;叶子结点没有________结点,其余每个结点的后续结点可以_________。

严蔚敏数据结构题集解答224页

严蔚敏数据结构题集解答224页

严蔚敏数据结构题集解答224页第一章基本概念和术语1.1数据结构的定义和作用数据结构是指数据对象中数据元素之间的关系,以及对这些关系的操作。

它在计算机科学中起着重要的作用,可以帮助我们更好地组织和管理数据。

1.2算法的定义和特性算法是一系列解决问题的清晰指令,它包含了一系列的步骤和规则,能够将输入转换为输出。

算法需要具备以下特性:确定性、有限性、可行性和输入输出。

第二章线性表2.1线性表的基本概念和表示线性表是由零个或多个数据元素组成的有限序列,它是一种常用的数据结构。

线性表可以使用顺序存储结构或链式存储结构进行表示。

2.2线性表的基本操作线性表的基本操作包括插入、删除、查找等。

插入操作可以在指定的位置插入一个新元素,删除操作可以删除指定位置的元素,查找操作可以根据给定条件来查找满足要求的元素。

第三章栈和队列3.1栈的定义和基本操作栈是一种特殊的线性表,它只允许在栈的一端进行插入和删除操作,这一端称为栈顶。

栈的基本操作包括进栈和出栈,以及栈空和栈满的判断。

3.2队列的定义和基本操作队列是一种特殊的线性表,它只允许在一端进行插入操作,在另一端进行删除操作,插入端称为队尾,删除端称为队头。

队列的基本操作包括入队和出队,以及队空和队满的判断。

第四章串4.1串的基本概念和表示方法串是由零个或多个字符组成的有限序列,它是一种特殊的线性表。

串的表示方法有两种:顺序存储和链式存储。

4.2朴素的模式匹配算法朴素的模式匹配算法是一种简单而有效的模式匹配算法,它通过逐个字符地比较主串和模式串的字符来进行匹配。

第五章数组和广义表5.1数组的定义和基本操作数组是一种线性表,它由一系列相同类型的元素组成。

数组的基本操作包括插入和删除元素,以及数组的查找和排序等。

5.2广义表的定义和基本操作广义表是一种扩展的线性表,它可以包含任意类型的元素,不仅可以是数据元素,还可以是另一个广义表。

广义表的基本操作包括对表头和表尾的操作,以及广义表的插入和删除等。

数据结构_(严蔚敏C语言版)_学习、复习提纲.

数据结构_(严蔚敏C语言版)_学习、复习提纲.

期末复习 第一章 绪论 复习1、计算机算法必须具备输入、输出、可行性、确定性、有穷性5个特性。

2、算法分析的两个主要方面是空间复杂度和时间复杂度。

3、数据元素是数据的基本单位。

4、数据项是数据的最小单位。

5、数据结构是带结构的数据元素的集合。

6、数据的存储结构包括顺序、链接、散列和索引四种基本类型。

基础知识数据结构算 法概 念逻辑结构 存储结构数据运算数据:计算机处理的信息总称 数据项:最小单位 数据元素:最基本单位数据对象:元素集合数据结构:相互之间存在一种或多种特定关系的数据元素集合。

概念:数据元素之间的关系 线性结构:一对一非线性结构 树:一对多 图:多对多顺序存储结构 链表存储结构 索引。

散列。

算法描述:指令的有限有序序列算法特性 有穷性 确定性 可行性 输入 输出 算法分析时间复杂度 空间复杂度第二章 线性表 复习1、在双链表中,每个结点有两个指针域,包括一个指向前驱结点的指针 、一个指向后继结点的指针2、线性表采用顺序存储,必须占用一片连续的存储单元3、线性表采用链式存储,便于进行插入和删除操作4、线性表采用顺序存储和链式存储优缺点比较。

5、简单算法第三章 栈和队列 复习线性表顺序存储结构链表存储结构概 念基本特点基本运算定义逻辑关系:前趋 后继节省空间 随机存取 插、删效率低 插入 删除单链表双向 链表 特点一个指针域+一个数据域 多占空间 查找费时 插、删效率高 无法查找前趋结点运算特点:单链表+前趋指针域运算插入删除循环 链表特点:单链表的尾结点指针指向附加头结点。

运算:联接1、 栈和队列的异同点。

2、 栈和队列的基本运算3、 出栈和出队4、 基本运算第四章 串 复习栈存储结构栈的概念:在一端操作的线性表 运算算法栈的特点:先进后出 LIFO初始化 进栈push 出栈pop队列顺序队列 循环队列队列概念:在两端操作的线性表 假溢出链队列队列特点:先进先出 FIFO基本运算顺序:链队:队空:front=rear队满:front=(rear+1)%MAXSIZE队空:frontrear ∧初始化 判空 进队 出队取队首元素第五章 数组和广义表 复习串存储结构运 算概 念顺序串链表串定义:由n(≥1)个字符组成的有限序列 S=”c 1c 2c 3 ……cn ”串长度、空白串、空串。

数据结构(C语言版)清华大学出版社 严蔚敏 吴伟民

数据结构(C语言版)清华大学出版社 严蔚敏 吴伟民

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

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,则下列序列中不可能是栈的输出序列的是( )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)的联系时,称这种结构为_____________________。

严蔚敏数据结构题集(C语言版)完整与答案

严蔚敏数据结构题集(C语言版)完整与答案

严蔚敏 数据结构C 语言版答案详解第1章 绪论1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。

解:数据是对客观事物的符号表示。

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

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

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

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

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

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

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

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

1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。

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

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

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

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

1.3 设有数据结构(D,R),其中{}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r =试按图论中图的画法惯例画出其逻辑结构图。

解:1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。

解:ADT Complex{ 数据对象:D={r,i|r,i 为实数} 数据关系:R={<r,i>} 基本操作: InitComplex(&C,re,im)操作结果:构造一个复数C ,其实部和虚部分别为re 和im DestroyCmoplex(&C)操作结果:销毁复数C Get(C,k,&e)操作结果:用e 返回复数C 的第k 元的值Put(&C,k,e)操作结果:改变复数C的第k元的值为eIsAscending(C)操作结果:如果复数C的两个元素按升序排列,则返回1,否则返回0 IsDescending(C)操作结果:如果复数C的两个元素按降序排列,则返回1,否则返回0 Max(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,否则返回0 IsDescending(R)操作结果:若有理数R的两个元素按降序排列,则返回1,否则返回0 Max(R,&e)操作结果:用e返回有理数R的两个元素中值较大的一个Min(R,&e)操作结果:用e返回有理数R的两个元素中值较小的一个}ADT RationalNumber1.5 试画出与下列程序段等价的框图。

数据结构 严蔚敏 期末复习题

数据结构 严蔚敏 期末复习题

一.是非题(共分,每题分)1. 数据结构可用三元式表示(D,S,P)。

其中:D是数据对象,S是D上的关系,P是对D的基本操作集。

(f)2 简单地说,数据结构是带有结构的数据元素的集合。

(t)3 判断带头结点的非空循环单链表(头指针为L)中指针p所指结点是最后一个元素结点的条件是:p->next==L。

(t)4线性表的链式存储结构具有可直接存取表中任一元素的优点。

(f)5 线性表的顺序存储结构优于链式存储结构。

(f)6. 在单链表P指针所指结点之后插入S结点的操作是:P->next= S ; S-> next = P->next;。

(f)7 对于插入、删除而言,线性表的链式存储优于顺序存储。

(t)8. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。

(f)9. 栈和队列是操作上受限制的线性表。

(t)10. 栈和队列是与线性表完全不同的一种数据结构。

(f)11. 队列是一种操作受限的线性表,凡对数据元素的操作仅限一端进行。

(f)12. 栈和队列也是线性表。

如果需要,可对它们中的任一元素进行操作。

(f)13. 栈是限定仅在表头进行插入和表尾进行删除运算的线性表。

(f)14. 二叉树中每个结点有两个子结点,而对一般的树,则无此限制,所以,二叉树是树的特殊情形。

(f)15 二叉树是一棵结点的度最大为二的树。

(f)16 赫夫曼树中结点个数一定是奇数。

(t)17 在二叉树的中序遍历序列中,任意一个结点均处在其左孩子结点的后面。

(t)18 假设B是一棵树,B′是对应的二叉树。

则B的后根遍历相当于B′的后序遍历。

(f)19. 通常,二叉树的第i层上有2i-1个结点。

(f)20. 中序线索二叉树的优点是便于在中序下查找直接前驱结点和直接后继结点。

(t)21 二叉树的先序遍历序列中,任意一个结点均处在其孩子结点的前面。

(t)22 由树结点的先根序列和后根序列可以唯一地确定一棵树。

(t)23 邻接多重表可以用以表示无向图,也可用以表示有向图。

数据结构c语言版严蔚敏课后习题答案

数据结构c语言版严蔚敏课后习题答案

数据结构c语言版严蔚敏课后习题答案数据结构是计算机科学中的一个重要领域,它涉及到数据的组织、管理和存储方式,以便可以高效地访问和修改数据。

C语言作为一种广泛使用的编程语言,提供了丰富的数据结构实现方法。

严蔚敏教授编写的《数据结构(C语言版)》是许多计算机专业学生的必读教材。

以下是对该书课后习题的一些参考答案,供学习者参考。

第一章:绪论1. 数据结构的定义:数据结构是计算机中存储、组织数据的方式,它不仅包括数据元素的类型和关系,还包括数据操作的函数。

2. 数据结构的重要性:数据结构对于提高程序的效率至关重要。

合理的数据结构可以减少算法的时间复杂度和空间复杂度。

第二章:线性表1. 线性表的定义:线性表是由n个元素组成的有限序列,其中n称为线性表的长度。

2. 线性表的顺序存储结构:使用数组来存储线性表的元素,元素的存储关系是连续的。

3. 线性表的链式存储结构:使用链表来存储线性表的元素,每个元素包含数据部分和指向下一个元素的指针。

第三章:栈和队列1. 栈的定义:栈是一种特殊的线性表,只能在一端(栈顶)进行插入和删除操作。

2. 队列的定义:队列是一种特殊的线性表,允许在一端(队尾)进行插入操作,在另一端(队首)进行删除操作。

第四章:串1. 串的定义:串是由零个或多个字符组成的有限序列。

2. 串的存储结构:串可以采用顺序存储结构或链式存储结构。

第五章:数组和广义表1. 数组的定义:数组是由具有相同类型的多个元素组成的集合,这些元素按照索引顺序排列。

2. 广义表的定义:广义表是线性表的推广,其中的元素可以是数据也可以是子表。

第六章:树和二叉树1. 树的定义:树是由节点组成的,其中有一个特定的节点称为根,其余每个节点有且仅有一个父节点。

2. 二叉树的定义:二叉树是每个节点最多有两个子节点的树。

第七章:图1. 图的定义:图是由顶点和边组成的数据结构,可以表示复杂的关系。

2. 图的存储结构:图可以用邻接矩阵或邻接表来存储。

严蔚敏数据结构复习整理完整版

严蔚敏数据结构复习整理完整版

1.复杂性分析对各种操作的时间复杂性的分析。

主要是链表,树,排序等简单一些的分析。

分析的时候,从简单的入手,学会方法。

后续的各种豆可能让你分析时间复杂度。

线性链表(顺序表和单链表)链表循环链表双向链表2.线性结构队列(循环队列)栈链表主要操作:找某一个元素,插入一个(在哪个位置增加),删除一个(在哪个位置删除)。

栈:查找,插入(位置固定),删除(位置固定)队列:查找,插入(位置固定),删除(位置固定)顺序表(可以视为一个数组)单链表:(删除)(插入)倒置:(查找)循环链表双向链表栈:(插入删除查找)队列(插入删除查找)循环队列的实现,并不是像上面的图那样,实现了一个循环的样子。

3.二叉树基本概念二叉树是每个节点最多有两个子树的有序树。

二叉树常被用于实现二叉查找树和二叉堆。

值得注意的是,二叉树不是树的特殊情形。

二叉树是每个结点最多有两个子树的有序树。

通常根的子树被称作“左子树”(left subtree)和“右子树”(right subtree)。

二叉树常被用作二叉查找树和二叉堆或是二叉排序树。

二叉树的每个结点至多只有二棵子树(不存在出度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。

二叉树不是树的一种特殊情形,尽管其与树有许多相似之处,但树和二叉树有两个主要差别:1. 树中结点的最大度数没有限制,而二叉树结点的最大度数为2;2。

树的结点无左、右之分,而二叉树的结点有左、右之分。

二叉树是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:(1)空二叉树——如图(a);(2)只有一个根结点的二叉树——如图(b);(3)只有左子树——如图(c);(4)只有右子树-—如图(d);(5)完全二叉树-—如图(e)注意:尽管二叉树与树有许多相似之处,但二叉树不是树的特殊情形性质(1)在非空二叉树中,第i层的结点总数不超过, i〉=1;(2)深度为h的二叉树最多有2^h—1个结点(h>=1),最少有h个结点;(3)对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;(4)具有n个结点的完全二叉树的深度为(5)有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系: 若I为结点编号则如果I>1,则其父结点的编号为I/2;如果2*I<=N,则其左儿子(即左子树的根结点)的编号为2*I;若2*I>N,则无左儿子;如果2*I+1〈=N,则其右儿子的结点编号为2*I+1;若2*I+1〉N,则无右儿子。

严蔚敏《数据结构》(C语言版)笔记和习题(含考研真题)详解

严蔚敏《数据结构》(C语言版)笔记和习题(含考研真题)详解
目录
第 1 章 绪 论............................................................................................................................................... 4 1.1 复习笔记 .......................................................................................................................................... 4 1.2 强化习题详解 ................................................................................................................................... 7 1.3 考研真题与典型题详解 ................................................................................................................... 22
第 4 章 串................................................................................................................................................... 114 4.1 复习笔记 ....................................................................................................................................... 114 4.2 强化习题详解 ................................................................................................................................ 118 4.3 考研真题与典型题详解 ..................................................................................................................138

严蔚敏 数据结构课后习题及答案解析

严蔚敏 数据结构课后习题及答案解析

第一章绪论一、选择题1.组成数据的基本单位是()(A)数据项(B)数据类型(C)数据元素(D)数据变量2.数据结构是研究数据的()以及它们之间的相互关系。

(A)理想结构,物理结构(B)理想结构,抽象结构(C)物理结构,逻辑结构(D)抽象结构,逻辑结构3.在数据结构中,从逻辑上可以把数据结构分成()(A)动态结构和静态结构(B)紧凑结构和非紧凑结构(C)线性结构和非线性结构(D)内部结构和外部结构4.数据结构是一门研究非数值计算的程序设计问题中计算机的(①)以及它们之间的(②)和运算等的学科。

①(A)数据元素(B)计算方法(C)逻辑存储(D)数据映像②(A)结构(B)关系(C)运算(D)算法5.算法分析的目的是()。

(A)找出数据结构的合理性(B)研究算法中的输入和输出的关系(C)分析算法的效率以求改进(D)分析算法的易懂性和文档性6.计算机算法指的是(①),它必须具备输入、输出和(②)等5个特性。

①(A)计算方法(B)排序方法(C)解决问题的有限运算序列(D)调度方法②(A)可执行性、可移植性和可扩充性(B)可行性、确定性和有穷性(C)确定性、有穷性和稳定性(D)易读性、稳定性和安全性二、判断题1.数据的机内表示称为数据的存储结构。

()2.算法就是程序。

()3.数据元素是数据的最小单位。

()4.算法的五个特性为:有穷性、输入、输出、完成性和确定性。

()5.算法的时间复杂度取决于问题的规模和待处理数据的初态。

()三、填空题1.数据逻辑结构包括________、________、_________ 和_________四种类型,其中树形结构和图形结构合称为_____。

2.在线性结构中,第一个结点____前驱结点,其余每个结点有且只有______个前驱结点;最后一个结点______后续结点,其余每个结点有且只有_______个后续结点。

3.在树形结构中,树根结点没有_______结点,其余每个结点有且只有_______个前驱结点;叶子结点没有________结点,其余每个结点的后续结点可以_________。

(严蔚敏)数据结构总复习习题与答案(2)

(严蔚敏)数据结构总复习习题与答案(2)

( C ) 4.按照二叉树的定义,具有3个结点的二叉树 有几种形态。 A.3 B.4 C.5 D.6
( B ) 5.二叉树若采用二叉链表结构表示,则对于n 个结点的二叉树一定有。 A. 2n个指针域,其中n个指针为NULL
B. 2n个指针域,其中n+1个指针为NULL C. 2n-1个指针域,其中n个指针为NULL D. 2n-1个指针域,其中n+1个指针为NULL
5
5
6
4
8 14
0
10 16 7
3
1
2
6
顶点: 1 路径长度: 16
2 10
3 14
4 22
5 21
四、算法阅读 已知二叉树以二叉链表作为存储结构,阅读下列算 法,说出它的功能。其中,k为全局变量,初值为 0; 首次调用unknown函数时,i 初值为 0。 void unknown( BiTree t, int i ) { if ( t !=NULL ) { i++ ; //访问根结点 if ( k<i ) k = i ; unknown( t->lchild, i ); //先序遍历左子树 unknown( t->rchild, i ); //先序遍历右子树 } } // unknown
1 2 3
拓扑序列:
123654 132654
5 4
6
136254
8.已知一个有向网的顶点集V和边集G分别为: V ={ 0,l,2,3,4,5 }; G ={ <0,1>16,<0,2>10,<0,3>14, <1,2>6, <1,5>5, <2,3>7, <3,4>8, <4,5>6 } 根据迪克斯特拉(Dijkstra)算法求出从顶点0 到其余各顶点的最短路径,在下面填写对应 的路径长度。 顶点: 1 2 3 4 5 路径长度:

1.严蔚敏版数据结构复习题集与参考答案

1.严蔚敏版数据结构复习题集与参考答案
}
(2)i=0;
do{
i++;
}while((i!=n)&&(a[i]!=x));
(3)switch{
case x<y: z=y-x; break;
case x=y: z=abs(x*y); break;
default: z=(x-y)/abs(x)*abs(y);
1.6在程序设计中,常用下列三种不同的出错处理方式:
1.3设有数据结构(D,R),其中
D d1,d2,d3,d4
试按图论中图的画法惯例画岀其逻辑结构图。
1.4试仿照三元组的抽象数据类型分别写岀抽象数据类型复数和有理数的定义(有理数是其分子、分母均 为自然数且分母不为零的分数)。
解:
ADT Complex{
数据对象:D={r,i|r,i为实数}
数据关系:R={<r,i>}
操作结果:如果复数C的两个元素按升序排列,则返回1,否则返回0
IsDescending(C)
操作结果:如果复数C的两个元素按降序排列,则返回1,否则返回0
Max(C,&e)
操作结果:用e返回复数C的两个元素中值较大的一个
Min(C,&e)
操作结果:用e返回复数C的两个元素中值较小的一个
}ADT Complex
(1)用exit语句终止执行并报告错误;
(2)以函数的返回值区别正确返回或错误返回;
(3)设置一个整型变量的函数参数以区别正确返回或某种错误返回。 试讨论这三种方法各自的优缺点。
解:(1)exit常用于异常错误处理,它可以强行中断程序的执行,返回操作系统。
(2)以函数的返回值判断正确与否常用于子程序的测试,便于实现程序的局部控制。

严蔚敏数据结构题集(C语言版)完整与答案

严蔚敏数据结构题集(C语言版)完整与答案

严蔚敏 数据结构C 语言版答案详解第1章 绪论1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。

解:数据是对客观事物的符号表示。

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

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

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

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

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

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

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

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

1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。

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

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

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

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

1.3 设有数据结构(D,R),其中{}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r =试按图论中图的画法惯例画出其逻辑结构图。

解:1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。

解:ADT Complex{ 数据对象:D={r,i|r,i 为实数} 数据关系:R={<r,i>} 基本操作: InitComplex(&C,re,im)操作结果:构造一个复数C ,其实部和虚部分别为re 和im DestroyCmoplex(&C)操作结果:销毁复数C Get(C,k,&e)操作结果:用e 返回复数C 的第k 元的值Put(&C,k,e)操作结果:改变复数C的第k元的值为eIsAscending(C)操作结果:如果复数C的两个元素按升序排列,则返回1,否则返回0 IsDescending(C)操作结果:如果复数C的两个元素按降序排列,则返回1,否则返回0 Max(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,否则返回0 IsDescending(R)操作结果:若有理数R的两个元素按降序排列,则返回1,否则返回0 Max(R,&e)操作结果:用e返回有理数R的两个元素中值较大的一个Min(R,&e)操作结果:用e返回有理数R的两个元素中值较小的一个}ADT RationalNumber1.5 试画出与下列程序段等价的框图。

严蔚敏-数据结构课后习题及复习资料解析

严蔚敏-数据结构课后习题及复习资料解析

第一章绪论一、选择题1.组成数据的基本单位是()(A)数据项(B)数据类型(C)数据元素(D)数据变量2.数据结构是研究数据的()以及它们之间的相互关系。

(A)理想结构,物理结构(B)理想结构,抽象结构(C)物理结构,逻辑结构(D)抽象结构,逻辑结构3.在数据结构中,从逻辑上可以把数据结构分成()(A)动态结构和静态结构(B)紧凑结构和非紧凑结构(C)线性结构和非线性结构(D)内部结构和外部结构4.数据结构是一门研究非数值计算的程序设计问题中计算机的(①)以及它们之间的(②)和运算等的学科。

① (A)数据元素(B)计算方法(C)逻辑存储(D)数据映像② (A)结构(B)关系(C)运算(D)算法5.算法分析的目的是()。

(A)找出数据结构的合理性(B)研究算法中的输入和输出的关系(C)分析算法的效率以求改进(D)分析算法的易懂性和文档性6.计算机算法指的是(①),它必须具备输入、输出和(②)等5个特性。

① (A)计算方法(B)排序方法(C)解决问题的有限运算序列(D)调度方法② (A)可执行性、可移植性和可扩充性(B)可行性、确定性和有穷性(C)确定性、有穷性和稳定性(D)易读性、稳定性和安全性二、判断题1.数据的机内表示称为数据的存储结构。

()2.算法就是程序。

()3.数据元素是数据的最小单位。

()4.算法的五个特性为:有穷性、输入、输出、完成性和确定性。

()5.算法的时间复杂度取决于问题的规模和待处理数据的初态。

()三、填空题1.数据逻辑结构包括、、和四种类型,其中树形结构和图形结构合称为。

2.在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。

3.在树形结构中,树根结点没有结点,其余每个结点有且只有个前驱结点;叶子结点没有结点,其余每个结点的后续结点可以。

4.在图形结构中,每个结点的前驱结点数和后续结点数可以。

5.线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。

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

数据结构复习题集一、判断题1.线性表的长度是线性表所占用的存储空间的大小。

( F )2.双循环链表中,任意一结点的后继指针均指向其逻辑后继。

( F )3.在对链队列做出队操作时,不会改变front指针的值。

( F )4.如果两个串含有相同的字符,则说它们相等。

( F )5.如果二叉树中某结点的度为1,则说该结点只有一棵子树。

(T )6.已知一棵树的先序序列和后序序列,一定能构造出该树。

( F )7.图G的一棵最小代价生成树的代价未必小于G的其它任何一棵生成树的代价。

(T )8.图G的拓扑序列唯一,则其弧数必为n-1(其中n为顶点数)。

( F )9.对一个堆按层次遍历,不一定能得到一个有序序列。

(T )10.直接选择排序算法满足:其时间复杂度不受数据的初始特性影响,为O(n2)。

(T )11. 线性表的逻辑顺序与物理顺序总是一致的。

( F )12. 线性表的顺序存储表示优于链式存储表示。

( F )13.线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。

(T )14. 二维数组是其数组元素为线性表的线性表。

( F )15. 每种数据结构都应具备三种基本运算:插入、删除和搜索。

(T )16.(101,88,46,70,34,39,45,58,66,10)是堆;(T )17.将一棵树转换成二叉树后,根结点没有左子树;( F )18.对不含相同元素的同一输入序列进行两组不同的、合法的入栈和出栈组合操作,所得的输出序列也一定相同;(F)19.哈夫曼树是带权外部路径长度最短的树,路径上权值较大的结点离根较近( T )20.用一组地址连续的存储单元存放的元素一定构成线性表。

(F)21.堆栈、队列和数组的逻辑结构都是线性表结构。

( T )22.给定一组权值,可以唯一构造出一棵哈夫曼树。

( F)23.相对于索引文件的基本数据,索引表包含的信息量相对少得多,因此。

索引表可以常驻内存。

( T)24.在平均情况下,快速排序法最快,堆积排序法最节省空间。

( T)25.快速排序法是一种稳定性排序法。

( F )二.选择题:1.一个栈的输入序列为12345,则下列序列中是栈的输出序列的是(A)。

A.23415B.54132C.31245D.1425 32.设循环队列中数组的下标范围是1~n,其头尾指针分别为f和r,则其元素个数为(D)。

A.r-fB.r-f+1C.(r-f) mod n +1D.(r-f+n) mod n3.二叉树在线索化后,仍不能有效求解的问题是(D)。

A.先序线索二叉树中求先序后继B. 中序线索二叉树中求中序后继C.中序线索二叉树中求中序前驱D. 后序线索二叉树中求后序后继4.求最短路径的FLOYD算法的时间复杂度为(D)。

A.O(n)B.O(n+e)C.O(n2)D.O(n3)5.一棵左右子树不空的二叉树在先序线索化后,其空指针域数为(B)。

A.0B.1C.2D.不确定6.数组A[1..5,1..6]的每个元素占5个单元,将其按行优先顺序存储在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为(A)。

A.1140B.1145C.1120D.11257.在下列排序算法中,在待排序的数据表已经为有序时,花费时间反而最多的是(A)。

A.快速排序B.希尔排序C.冒泡排序 D.堆排序8. 某算法的空间花费s(n)=100nlog2n+1000n+2000,其空间复杂度为[ D ]A.O(1)B.O(n)C.O(n1.5)D.O(nlog2n)9.下列排序算法中,某一趟结束后未必能选出一个元素放在其最终位置上的是(D)。

A.堆排序B.冒泡排序C.快速排序 D.直接插入排序10.在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡点为A,并已知A的左孩子的平衡因子为-1,右孩子的平衡因子为0,则做(B)型调整以使其平衡。

A.LLB.LRC.RLD.RR设单链表中结点的结构为typedef struct node { //链表结点定义ElemType data; //数据struct node * Link; //结点后继指针} ListNode;11. 已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列哪一个操作?[B]A. s->link = p; p->link = s;B. s->link = p->link; p->link = s;C. s->link = p->link; p = s;D. p->link = s; s->link = p;12. 非空的循环单链表first的尾结点(由p所指向)满足:[C ]A. p->link == NULL;B. p == NULL;C. p->link == first;D. p == first;13.在单项链表中删除一个指定结点的后继的时间复杂度为 [ C ]A.O(n)B.O(nlog2n)C.O(1)D.O(√n)14.在n(n>0)个元素的顺序栈中删除1个元素的时间复杂度为 [ D ]A.O(1)B.O(√n)C.O(nlog2n)D.O(n)15.广义表的深度是 [ C ]A.广义表中子表个数B.广义表括号个数C.广义表展开后所含的括号层数D.广义表中元素个数16.高度为h(h>0)的二叉树最少有________个结点 [ C ]A.hB.h-1C.h+1D.2h17.n个顶点的带权无向连通图的最小生成树包含___A_____个顶点 [ ]A.n-1B.nC.n/2D.n+118.冒泡排序在最好情况下时间复杂度为 [ C ]A.O(1)B.O(nlog2n)C.O(n)D.O(n2)19.采用拉链法解决冲突的散列表中,查找的平均查找长度 [ C ]A.直接与关键字个数有关B.直接与装填因子a有关C.直接与表的容量有关D.直接与散列函数有关20. 下列图示的顺序存储结构表示的二叉树是(A )21. n个顶点的连通图中至少含有(A )A. n-1条边B. n条边C. n(n-1)/2条边D. n(n-1)条边22. 对关键字序列(56,23,78,92,88,67,19,34)进行增量为3的一趟希尔排序的结果为( D)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)23.某二叉树的先序序列和后序序列正好相同,则该二叉树一定是( A )的二叉树。

A.空或只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子24.下列排序算法中,时间复杂度不受数据初始状态影响,恒为O(nlog2n)的是( A )A.堆排序B.冒泡排序C.直接选择排序D.快速排序25.广义表A=(a,b,(c,d),(e,(f,g))),则下面式子的值为( D );Head(Tail(Head(Tail(Tail(A)))))A.(g) B.(d) C.c D.d26.请指出在顺序表{2、5、7、10、14、15、18、23、35、41、52}中,用二分法查找关键码12需做多少次关键码比较。

( C)A、2B、3C、4D、527. 下面关于图的存储的叙述中,哪一个是正确的。

( A)A.用相邻矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关B.用相邻矩阵法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关C.用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关D.用邻接表法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关28.给定一个整数集合{3,5,6,9,12},下列二叉树哪个是该整数集合对应的霍夫曼(Huffman)树。

( C )29.对线性表采用折半查找法,该线性表必须(C)。

A.采用顺序存储结构B.采用链式存储结构C.采用顺序存储结构,且元素按值有序D.采用链式存储结构,且元素按值有序30.已知二叉树的前序序列为ABDCEFG,中序序列为DBCAFEG,则后序序列为( B)。

A. DCBAFGEB. DCBFGEAC.DCBFEGA D. DCBGFEA31.下列各式中,按增长率由小至大的顺序正确排列的是( D )A. log n,n!,2n ,n3/2B.n3/2,2n,n logn,2100C.2n,log n,n logn,n3/2D.2100,logn, 2n, n n32.若要在单链表中的结点*p之后插入一个结点*s,则应执行的语句是( A )A.s->next=p->next; p->next=s; B.p->next=s;s->next=p->next;C.p->next=s->next; s->next=p; D.s->next=p;p->next=s->next;33.若要在O(1)的时间复杂度上实现两个循环链表头尾相接,则应对两个循环链表各设置一个指针,分别指向( B )A.各自的头结点B.各自的尾结点C.各自的第一个元素结点D.一个表的头结点,另一个表的尾结点34.二维数组A[20][10]采用列优先的存储方法,若每个元素占2个存储单元,且第1个元素的首地址为200,则元素A[8][9]的存储地址为( 200+(20*9+8)*2=576//首地址应该为200,此时答案为B )A.574B.576C.594D.58035.对广义表L=((a,b),c,d)进行操作tail(head(L))的结果是( D )A.(c,d)B.(d)C.bD.(b)36.已知一棵树的前序序列为ABCDEF,后序序列为CEDFBA,则对该树进行层次遍历得到的序列为( D )A.ABCDEFB.ABCEFDC.ABFCDED.ABCDFE37.在一个长度为n的顺序存储的线性表中,删除第i个元素(1<=I<=n)时,需要从前向后依次前移(A)个元素。

A、n-iB、n-I+1C、n-I-1D、I38.假定一个顺序队列的队首和队尾指针分别为f和r,则判断队空的条件为( D)A、f+1==rB、r+1==fC、f==0D、f==r39.某带头结点的单链表的头指针为head,判定该链表为非空的条件是( D )A.head==NULLB.head->next==NULLC.head!=NULLD.head->next!=NULL40.导致栈上溢的操作是( B )A.栈满时执行的出栈B.栈满时执行的入栈C.栈空时执行的出栈D.栈空时执行的入栈41.假设一棵完全二叉树按层次遍历的顺序依次存放在数组BT[m]中,其中根结点存放在BT[0],若BT[i]中的结点有左孩子,则左孩子存放在( D )A. BT[i/2]B. BT[2*i-1]C. BT[2*i]D. BT[2*i+1]42.连通图是指图中任意两个顶点之间( A )A.都连通的无向图B.都不连通的无向图C.都连通的有向图D.都不连通的有向图三、名词解释1.描述线性表中三个概念的区别:头指针、头结点、首元结点(第1个元素结点)。

相关文档
最新文档