数据结构(Java版)
习题解答与实验指导
目录
第1章 绪论1
1.1 数据结构的基本概念1
1.2 算法2
第2章 线 性 表3
2.1 线性表抽象数据类型3
2.2 线性表的顺序存储和实现4
2.2.1 线性表的顺序存储结构4
2.2.2 顺序表4
2.2.3 排序顺序表6
2.3 线性表的链式存储和实现7
2.3.1 单链表7
【习题2-8】单链表结点类问题讨论。7
【习2.1】 使用单链表求解Josephus环问题。9
【习2.2】 集合并运算,单链表深拷贝的应用。10
2.3.2 双链表12
【习2.3】 循环双链表的迭代方法。13
【习2.4】 循环双链表合并连接。14
第3章 串15
3.1 串抽象数据类型15
3.2 串的存储和实现15
3.2.1 串的存储结构15
3.2.2 常量字符串类15
【习3.1】 C/C++语言,string.h中的strcpy()和strcat()函数存在下标越界错误。15
【思考题3-1】逆转String串,分析算法效率。17
【实验题3-1】MyString类,比较串大小,忽略字母大小写。17
【例3.2思考题3-2】MyInteger整数类,返回value的radix进制原码字符串。18
【实验题3-9】浮点数类。19
3.2.3 变量字符串类20
【实验题3-11】删除变量串中的所有空格。 4-样卷20
3.3 串的模式匹配21
3.3.1 Brute-Force模式匹配算法21
3.3.2 模式匹配应用22
【思考题3-4,实验题3-13】MyString类,replaceAll(pattern,s)改错。22
3.3.3 KMP模式匹配算法22
第4章 栈和队列26
4.1 栈26
4.2 队列27
4.3 递归29
【习4.1】 打印数字塔。29
第5章 数组和广义表31
5.1 数组31
5.2 特殊矩阵的压缩存储32
5.2.1 三角矩阵、对称矩阵和对角矩阵的压缩存储32
5.2.2 稀疏矩阵的压缩存储33
5.3 广义表35
第6章 树和二叉树36
6.2 二叉树36
6.3 线索二叉树40
6.4 Huffman树44
6.5 树的表示和实现45
第7章 图46
7.1 图及其抽象数据类型46
7.2 图的表示和实现46
7.3 图的遍历48
7.4 最小生成树50
7.5 最短路径51
第8章 查 找53
8.1 查找的基本概念53
8.2 二分法查找54
8.4 散列55
8.5 二叉排序树56
【实验8-1】判断一棵二叉树是否为二叉排序树,改错。56
第9章 排序57
9.1 插入排序57
9.2 交换排序58
9.3 选择排序59
9.4 归并排序60
9.5 线性表的排序算法60
9.5.1 顺序表的排序算法60
【实验题9-2】归并两条排序顺序表。60
第10章 综合应用设计62
10.1 Java集合框架62
【习10.1】 Collection整数集合元素求和。62
10.2 课程设计补充选题63
绪论
目的:勾勒数据结构课程的轮廓,了解本课程的目的、性质和主要内容。
内容:数据结构和算法概念,算法设计与分析。
要求:理解数据结构基本概念,理解抽象数据类型概念;熟悉算法设计和分析方法。
重点:数据的逻辑结构和存储结构概念。
难点:抽象数据类型,链式存储结构,算法分析方法。
实验:简单算法设计,回顾Java语言的基本语法和面向对象基本概念。
数据结构的基本概念
习1-2 什么是数据结构?数据结构概念包括哪些部分?
习1-3 数据的逻辑结构主要有哪三种?三者之间存在怎样的联系?
习1-4 数据的存储结构主要有哪些?各有何特点?
习1-5 不同数据结构之间共同的操作有哪些?
【答】上述1-1~1-4问题说明如下。
① 数据结构,指数据元素之间存在关系的数据元素集合。
② 数据结构包含数据的逻辑结构、存储结构和数据操作三方面概念。
③ 数据的逻辑结构主要有三种:线性结构、树结构和图结构,线性结构是树的特例,树结构是图的特例。
④ 数据的存储结构有两种:顺序存储结构和链式存储结构,两者特点分别是数据元素数据连续存储、分散存储。
⑤ 数据操作主要有:求数据元素个数,访问、查找、插入、删除数据元素等。
数据结构概念描述如图1.1所示。
数据结构概念
习1-6 数据结构与数据类型有什么区别?为什么要将数据结构设计成抽象数据类型?
【答】数据结构与数据类型概念本质相同,使用数据类型描述数据特性,使用数据结构描述数据之间关系。
将数据结构设计成抽象数据类型,是为了“定义和实

3092

被折叠的 条评论
为什么被折叠?



