数据结构JAVA语言描述习题答案(刘小晶等主编).pdf总复习
数据结构JAVA语言描述习题答案(刘小晶等主编).pdf总复习

0 1 2 3 4 5 6 7 8 9 10
55 01 23 14 36 82 68
19
11
3
1 1 2 1 2 1 4 1 ASL(成功)= (1*5+2*1+3+4)/9=14/9
3 V4 4 V5 5 V6
1 5 5 4
4
广度优先搜索法遍历序列: V1,V2,V3,V4,V5,V6
2
3
例题: 设有如下的两个网络, 分别用普里姆(Prim)算法 和克鲁斯卡尔(Kruskal)算法具体构造相应的最小生 成树。 写出过程。 a 5 6 1
b
5 6
c
6
5 4
d
3
2
[例1]假设按低下标优先存储整数数组 A9×3×5×8时, 第一个元素的字节地址是100,每个整数占 四个字节,问元素a3125的地址是什么? LOC(a3125)= ? 100+(3×3×5×8+1×5×8+2×8+5)×4 =1784
[ 例 2] 设有数组 A[1..8,1..10] ,数组的每个元素占 3 字节,数组从内存首地址 BA开始以列序为主序顺 序存放,求数组元素 a[5,8]的存储首地址.
8 9 10
55 01 23 14 68 11 82 36 19
1 1 2 1 3 6 2 5 1 查找次数 ASL(成功)=(4*1+2*2+3+5+6)/9=22/9
ASL(不成功)=(10+9+…+1+1)/11=56/11
例如: 关键字集合 { 19, 01, 23, 14, 55, 68, 11, 82, 36 }
《数据结构Java版》习题解答.

}
for (int i=0; i<mat.length; i++)//输出二维数组元素
{
for (int j=0; j<mat[i].length; j++)//i、j是行、列下标
System.out.print(" "+mat[i][j]);
System.out.println();
else
{
Node<E> p=this.head;
while (p.next!=null)
p = p.next;
p.next = list.head;
}
}
【习3.5】实验2.2复制单链表。
在SinglyLinkedList单链表类中,增加构造方法如下。
public SinglyLinkedList(SinglyLinkedList<E> list)//以单链表list构造新的单链表
{
p = new Node(element[i]);
p.next = create(element, i+1);
}
return p;
}
单链表的复制操作也可设计为以下的递归方法:
public SinglyLinkedList(SinglyLinkedList<E> list)//以单链表list构造新的单链表
图3.2p.next=p将改变结点间的链接关系
【习3.1】实验2.2由指定数组中的多个对象构造单链表。
在SinglyLinkedList单链表类中,增加构造方法如下。
public SinglyLinkedList(E[] element)//由指定数组中的多个对象构造单链表
(完整版)数据结构课后习题答案(可编辑修改word版)

第1 章绪论1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。
答案:数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。
如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。
数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。
在有些情况下,数据元素也称为元素、结点、记录等。
数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的一个格局(状态)、图中的一个顶点等。
数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。
例如,学生基本信息表中的学号、姓名、性别等都是数据项。
数据对象:是性质相同的数据元素的集合,是数据的一个子集。
例如:整数数据对象是集合N={0,±1,±2,… },字母字符数据对象是集合C={‘A’,‘B’,… ,‘Z’,‘a’,‘b’,…,‘z’},学生基本信息表也可是一个数据对象。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。
逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。
因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。
存储结构:数据对象在计算机中的存储表示,也称为物理结构。
抽象数据类型:由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。
具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。
2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。
答案:例如有一张学生基本信息表,包括学生的学号、姓名、性别、籍贯、专业等。
每个学生基本信息记录对应一个数据元素,学生记录按顺序号排列,形成了学生基本信息记录的线性序列。
数据结构(Java版)习题解答

AI N D E X练习题答案第一章练习题答案(a) n+(n–1)+(n–2)+…+2+1=2)1(+ n n (b) n+(n–1)+(n–2)+…+2+1=2)1(+nnf(n)≦c.g(n) →f(n)=O(g(n))(a) f(n)=100n+9c=101, g(n)=n, n0=10得知f(n)=O(n)(b) f(n)=1000n2+100n–8c=2000, g(n)= n2, n0=1得知f(n)=O(n2)(c) f(n)=5*2n+9 n2+2c=10, n0=5得知f(n)=O(2n)f(n)≧c g(n) →f(n)=Ω(g(n)) (a) f(n)=3n+1c=2, n0=1, g(n)=n得知f(n)=Ω(n)(b) f(n)=100n2+4n+5c=10, n0=1, g(n)= n2得知f(n)=Ω(n2)(c) f(n)=8*2n+8n+16c=8, n0=1, g(n)= 2n得知f(n)=Ω(n2)c1.g(n)≦f(n)≦c2.g(n) →f(n)= Θ(g(n))(a) f(n)=3n+2c1=3, c2=6, n0=1得知f(n) = Θ (n)(b) f(n)=9n2+4n+2c1=9, c2=16, n0=1得知f(n) = Θ (n2)(c) f(n)=8n4+5n3+5c1=8, c2=20, n0=1得知f(n) = Θ (n4)A-2练习题解答第二章练习题答案1. 分别以行为主和以列为主说明之。
(a) 以行为主A(i, j)=l0+(i–1)*u2*d+(j–1)*d(b) 以列为主A(i, j)=l0+(j–1)*u1*d+(i–1)*d2. 以列为主A(i, j)=l0+(j–12)*md+(i–l1)dm=u1–l1+1=5–(–3)+1=9m=u2–l2+1=2–(–4)+1=7A(1, 1) =100+(1–(–4))*9+(1–(–3))=100+45+4=1493. 分别以行为主和以列为主的说明。
数据结构(java版)刘小晶:第2章 线性表-java版

作业布置
结束放映
……
2.2 线性表的顺序存储及其实现
数据结构(Java语言描述)
5. 顺序表类的描述
章节目录
public class SqList implements IList {
// 判空函数 public boolean isEmpty( ) { return curLen == 0; } // 求顺序表长度函数 public int length( ) { return curLen; } // 读取顺序表中第i个元素的函数 public Object get (int i) throws Exception { if (i < 0 || i > curLen – 1) throw new Exception("第" + i + "个元素不存在"); return listElem[i]; } }
listElem maxSize-1
作业布置
结束放映
21 18
0
30 75 42 56 87
curLen-1
21 18 30 75
0
66 42 56 87
curLen-1
for (int j = curLen; j > i; j--) listElem[j] = listElem[j - 1]; //后移 listElem[i] = x; // 插入x
结束放映
a 0 a1 …
a0 a1 …
ai-1
ai-1
ai
… an-1
ai
x
…
an-1
当前表的长度增加1
2.2 线性表的顺序存储及其实现
数据结构(Java语言描述)
数据结构课后习题答案

数据结构课后习题答案数据结构习题集答案第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={} 基本操作: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={}基本操作:InitRationalNumber(&R,s,m)操作结果:构造一个有理数R,其分子和分母分别为s和m DestroyRationalNumber(&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.5 试画出与下列程序段等价的框图。
数据结构Java版习题解答

else
return binarySearch(table, value, mid+1, high);//查找范围缩小到后半段
}
return -1;
}
【习2.5】二叉排序树查找的递归算法。
数据结构Java版习题解答
第1章
【习1.1】实验哥德巴赫猜想。
【习1.2】实验杨辉三角形。
【习1.3】实验金额的中文大写形式。
【习1.4】实验下标和相等的数字方阵。
输出下列方阵(当n=4时)。
1267或13410
3581325911
491214681215
101115167131416
采用二维数组实现。二维数组中,每一条斜线上各元素下标和相等,如图所示。
图1.2下标和相等的数字方阵算法描述
程序如下。
public class Upmat
{
public static void main(String args[])
{
表1.1int n=4;ength; j++)8.2.18.2.1
ength, ;
for (int j=0; j<[i].length; j++)
[j][i]=[i][j];
return trans;
}
第2章
【习2.1】画出3个结点的各种形态的树和二叉树。
3个结点的树有2种形态,3个结点的二叉树有5种形态,如图所示。
图2.23个结点树和二叉树的形态
【习2.1】找出分别满足下面条件的所有二叉树。
1先根遍历序列和中根遍历序列相同:右单支二叉树,如图(a)所示。
数据结构java语言描述课后答案

数据结构 java 语言描述课后答案【篇一:数据机构第一章—— java 语言描述第 1 章绪论习题参考答案】概念题1.试述下列各组概念:⑴数据、数据元素、数据项⑵ 数据结构、数据的逻辑结构、数据的存储结构⑶ 数据类型、数据操作⑷ 算法、算法的时间复杂度、算法的空间复杂度参考答案 : 略2 .试述数据结构研究的3 个方面的内容。
参考答案:数据结构研究的 3 个方面分别是数据的逻辑结构、数据的存储结构和数据的运算(操作)。
3.试述集合、线性结构、树型结构和图型结构四种常用数据结构的特性。
参考答案 :集合结构:集合中数据元素之间除了“同属于一个集合”的特性外,数据元素之间无其它关系,它们之间的关系是松散性的。
线性结构:线性结构中数据元素之间存在“一对一”的关系。
即若结构非空,则它有且仅有一个开始结点和终端结点,开始结点没有前趋但有一个后继,终端结点没有后继但有一个前趋,其余结点有且仅有一个前驱和一个后继。
树形结构:树形结构中数据元素之间存在“一对多”的关系。
即若结构非空,则它有一个称为根的结点,此结点无前驱结点,其余结点有且仅有一个前驱,所有结点都可以有多个后继。
图形结构:图形结构中数据元素之间存在“多对多”的关系。
即若结构非空,则在这种数据结构中任何结点都可能有多个前驱和后继。
4 .设有数据的逻辑结构的二元组定义形式为b=(d,r) ,其中d={a1,a2,?,an},r={ai,ai+1| i=1,2,?,n-1},请画出此逻辑结构对应的顺序存储结构和链式存储结构的示意图。
参考答案 :顺序存储结构示意图如下:0 1 2 ?n-2 n-1链式存储结构示意图如下:?5 .设一个数据结构的逻辑结构如图 1.9 所示,请写出它的二元组定义形式。
图 1.9 第 5 题的逻辑结构图参考答案 :它的二元组定义形式为 b= (d ,r ),其中d={k1,k2,k3,k4,k5,k6,k7,k8,k9},r=k1,k3,k1,k8,k2,k3k2,k4,k2,k5,k3,k9,k4,k6,k4,k7,k5,k6,k8,k9,k9,k7 } 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6 a5
b
1
d
5 c5
3
6
42
e6 f
第7章
各种内部排序算法的原理、执行过程、时间复杂度、 稳定性。
习题一、二;
例题
1.以关键字序列{53,07,52,01,98,10,87, 25,63,46}为例,手工执行直接插入排序、希尔排 序(增量为5,2,1)、快速排序、归并排序算法, 完成:
(1)写出每一种排序的每一趟排序结束时的关键 字序列;
(2)分析哪些排序是稳定的,哪些是不稳定,并 为每一种不稳定的排序方法举出一个不稳定 求查找算法的ASL; 习题一、二;
例如: 关键字集合
{ 19, 01, 23, 14, 55, 68, 11, 82, 36 }
第5章
树和二叉树的基本概念; 二叉树的性质154; 二叉树的顺序和链式存储; 二叉树的四种遍历方法,能写出正确的遍历序列; 二叉树的建立:先根和中根,后根和中根。 构造哈夫曼树和哈弗曼编码,求哈弗曼树的WPL; 树、森林、二叉树之间的转换; 习题一、二
1. 将如下图的森林转换为二叉树
LOC(a3125)= ? 100+(3×3×5×8+1×5×8+2×8+5)×4
=1784
[例2] 设有数组A[1..8,1..10],数组的每个元素占3 字节,数组从内存首地址BA开始以列序为主序顺 序存放,求数组元素 a[5,8]的存储首地址.
LOC(a[5,8])= BA+(7×8+4) ×3= BA+180
例如: 关键字集合 { 19, 01, 23, 14, 55, 68, 11, 82, 36 }
设定哈希函数 H(key) = key MOD 11 ( 表长=11 )
若采用二次探测再散列处理冲突
0
12 3
4
5
6
7
8
55 01 23 14 36 82 68
19
11212 14
1
ASL(成功)= (1*5+2*1+3+4)/9=14/9
习题一、二、三(1,2)
第4章
串的概念; 串的存储方式,掌握顺序串的基本操作。 数组的顺序存储,已知基地址,求任意元素地址; 特殊矩阵的压缩存储:对称阵、三角阵; 习题一、二、三(7).
[ 例 1] 假 设 按 低 下 标 优 先 存 储 整 数 数 组 A9×3×5×8 时 , 第一个元素的字节地址是100,每个整数占 四个字节,问元素a3125的地址是什么?
0 V1 1 1 V2 0 2 V3 0
2
3
2
深度优先搜索法遍历序列: V1,V2,V3,V5,V6,V4
1
4
3 V4 0 4 V5 2 5 V6 3
5
广度优先搜索法遍历序列:
5 V1,V2,V3,V4,V5,V6
4
例题:
设有如下的两个网络, 分别用普里姆(Prim)算法 和克鲁斯卡尔(Kruskal)算法具体构造相应的最小生 成树。 写出过程。
9 10
11
3
例1:已知一个图,若从顶点v1出发分别写出
按深度优先搜索法进行遍历和按广度优先搜
索法进行遍历的一种可能得到的顶点序列。
V1 V2 V3
深度优先搜索法遍历序列: V1,V2,V3,V5,V6,V4
V4
广度优先搜索法遍历序列:
V5
V6
V1,V2,V3,V4,V5,V6
例2:已知一个图的邻接表存储结构如下图,若从顶点 v1出发分别写出有向图按深度优先搜索法进行遍历和按 广度优先搜索法进行遍历的得到的顶点序列。
设定哈希函数 H(key) = key MOD 11 ( 表长=11 )
若采用线性探测再散列处理冲突 产生二次聚集
0
1
2
3
45
6 78
9 10
55 01 23 14 68 11 82 36 19
1 1 2 1 3 6 2 5 1 查找次数
ASL(成功)=(4*1+2*2+3+5+6)/9=22/9 ASL(不成功)=(10+9+…+1+1)/11=56/11
A
F
K
BC D
G
LM
E HI J
N
2. 假设用于通讯的电文仅由6个字母组成,字
母在电文中出现的频率分别为:7,9,2,6,
32,3。试为这6个字母设计哈夫曼编码。
第6章
图的基本概念; 图的存储结构:邻接矩阵和邻接表。定义在其上的
基本操作。 图的DFS和BFS序列; 最小生成树的构造:克鲁斯卡尔、普里姆算法过程; 最短路径:迪杰斯特拉算法。 习题一、二、三(1,3,4)
第1章
(1)数据结构:包括逻辑结构和存储结构; (2)逻辑结构有几类?存储结构有几类? (3)算法的时间复杂度分析(关键操作)
第2章
线性表的顺序和链式存储的定义及特点; 顺序表和链表上的基本操作; 课后习题一、二、三(2,5,8).
第3章
栈和队列的概念、特点;
栈和队列的顺序和链式存储,及定义在其上 的基本操作;