文档介绍:Document number:BGCG-0857-BTDO-0089-2022
数据结构Java版习题解答
Java程序设计基础
实验 哥德巴赫猜想。
实验 杨辉三角形。
实验 金额的中文大写形式。
实验 下标和相等的数字方阵。
输出下列方阵(当n=4时)。
1 2 6 7 或 1 3 4 10
3 5 8 13 2 5 9 11
4 9 12 14 6 8 12 15
10 11 15 16 7 13 14 16
采用二维数组实现。二维数组中,每一条斜线上各元素下标和相等,如图所示。
下标和相等的数字方阵算法描述
程序如下。
public class Upmat
{
public static void main(String args[])
{
int n=4; ength; j++)
ength, ;
for (int i=0; i< i++)
for (int j=0; j<[i].length; j++)
[j][i]=[i][j];
return trans;
}
树和二叉树
画出3个结点的各种形态的树和二叉树。
3个结点的树有2种形态,3个结点的二叉树有5种形态,如图所示。
3个结点树和二叉树的形态
找出分别满足下面条件的所有二叉树。
先根遍历序列和中根遍历序列相同:右单支二叉树,如图(a)所示。
中根遍历序列和后根遍历序列相同:左单支二叉树,如图(b)所示。
先根遍历序列和后根遍历序列相同:空树,只有一个根结点的二叉树。
单支二叉树
输出叶子结点。
在BinaryTree类中增加以下方法。
public void leaf() quals(i))))
return false;
return true;
}
return false;
}
实验 单链表的全部替换操作。
在SinglyLinkedList单链表类中,增加替换操作方法如下。
public boolean replace(Object obj, E element) //详见实验
public boolean replaceAll(Object obj, E element) //将所有元素值为obj的结点值替换为element
{ //若替换成功返回true,否则返回false
boolean done=false;
if (obj!=null && element!=null)
{
Node<E> p=;
while (p!=null)
{
if )
{
= element;
done = true;
}
p = ;
}
}
return done;
}
实验 单链表的全部删除操作。
在SinglyLinkedList单链表类中,增加删除操作方法如下。
public boolean removeAll(Object obj) //将所有元素值为obj的结点删除
{
if ==null || obj==null)
return false;
boolean done=false;
while !=null && {
= //头删除
done = t