数据结构java版答案_《数据结构Java版》习题解答(参考).doc

第0章 Java程序设计基础1

【习0.1】 实验0.1 哥德巴赫猜想。1

【习0.2】 实验0.2 杨辉三角形。1

【习0.3】 实验0.3 金额的中文大写形式。1

【习0.4】 实验0.4 下标和相等的数字方阵。1

【习0.5】 实验0.5 找出一个二维数组的鞍点2

【习0.6】 实验0.6 复数类。2

【习0.7】 实验0.8 图形接口与实现图形接口的类2

第1章 绪论3

【习1.1】 实验1.1 判断数组元素是否已按升序排序。3

【习1.2】 实验1.3 用递归算法求两个整数的最大公因数。3

第2章 线性表5

【习2.1】 习2-5 图2.19的数据结构声明。5

【习2.2】 习2-6 如果在遍历单链表时,将p=p.next语句写成p.next=p,结果会怎样?5

【习2.3】 实验2.2 由指定数组中的多个对象构造单链表。5

【习2.4】 实验2.2 单链表的查找、包含、删除操作详见8.2.1。5

【习2.5】 实验2.2 单链表的替换操作。6

【习2.6】 实验2.2 首尾相接地连接两条单链表。6

【习2.7】 实验2.2 复制单链表。6

【习2.8】 实验2.2 单链表构造、复制、比较等操作的递归方法。7

【习2.9】 建立按升序排序的单链表(不带头结点)。8

【习2.10】 实验2.6 带头结点的循环双链表类,实现线性表接口。10

【习2.11】 实验2.5 建立按升序排序的循环双链表。14

第3章 栈和队列17

【习3.1】 习3-5 栈和队列有何异同?17

【习3.2】 能否将栈声明为继承线性表,入栈方法是add(0,e),出栈方法是remove(0)?为什么?17

【习3.3】 能否用一个线性表作为栈的成员变量,入栈方法是add(0,e),出栈方法是remove(0)?为什么?17

【习3.4】 能否将队列声明为继承线性表,入队方法是add(e),出队方法是remove(0)?为什么?17

第4章 串18

【习4.1】 实验4.6 找出两个字符串中所有共同的字符。18

【习4.2】 习4-9(1) 已知目标串为"abbaba"、模式串为"aba",画出其KMP算法的匹配过程,并给出比较次数。18

【习4.3】 习4-9(2) 已知target="ababaab"、pattern="aab",求模式串的next数组,画出其KMP算法的匹配过程,并给出比较次数。18

第5章 数组和广义表20

【习5.1】 求一个矩阵的转置矩阵。20

第6章 树和二叉树21

【习6.1】 画出3个结点的各种形态的树和二叉树。21

【习6.2】 找出分别满足下面条件的所有二叉树。21

【习6.3】 输出叶子结点。21

【习6.4】 求一棵二叉树的叶子结点个数。22

【习6.5】 判断两棵二叉树是否相等。22

【习6.6】 复制一棵二叉树。23

【习6.7】 二叉树的替换操作。23

【习6.8】 后根次序遍历中序线索二叉树。24

第7章 图25

第8章 查找26

【习8.1】 实验8.1 顺序表的查找、删除、替换、比较操作。26

【习8.2】 实验8.2 单链表的全部替换操作。28

【习8.3】 实验8.2 单链表的全部删除操作。28

【习8.4】 折半查找的递归算法。29

【习8.5】 二叉排序树查找的递归算法。29

【习8.6】 二叉排序树插入结点的非递归算法。30

【习8.7】 判断一棵二叉树是否为二叉排序树。31

第9章 排序32

【习9.1】 判断一个数据序列是否为最小堆序列。32

【习9.2】 归并两条排序的单链表。32

【习9.3】 说明二叉排序树与堆的差别。34

图0.1 下标和相等的数字方阵算法描述1

图2.1 p.next=p将改变结点间的链接关系5

图4.1 目标串"abbaba"和模式串"aba"的KMP算法模式匹配过程18

图4.2 目标串"ababaab"和模式串"aab"的KMP算法模式匹配过程19

图6.1 3个结点树和二叉树的形态21

图6.2 单支二叉树21

图9.2 归并两条排序的单链表33

表4.1 模式串"aab"的next数组19

Java程序设计基础

实验0.1 哥德巴赫猜想。

实验0.2 杨辉三角形。

实验0.3 金额的中文大写形式。

实验0.4 下标和相等的数字方阵。

输出下列方阵(当n=4时)。

1267 或 13410

35813 25911

491214

你可能感兴趣的:(数据结构java版答案)