《数据结构(Java版)(第4版)》课程设计题全解
课程设计
课程设计选题
课程设计的目的、要求和选题详见教材10.4节,及课程设计任务书。
线性表
多项式的表示和运算
题意详见教材2.4节。
使用排序单链表存储多项式
(一元多项式相加,PolySinglyList多项式排序单链表类增加以下成员方法,public权限。
//多项式相加,this+this和list,C(x)=A(x)+B(x)。
//算法不调用深拷贝,将this(A)和list(B)中的所有结点合并(相加)到C多项式单链表
PolySinglyList union(PolySinglyList list)
(二元多项式相加,实现10-1题。
(一元多项式相乘,Polynomial多项式类public boolean equals(Object obj) //比较两个多项式是否相等public Polynomial multi(Polynomial poly) //相乘,this*poly的多项式
(二元多项式相乘,实现10-3题。
使用排序循环双链表存储多项式
(一元多项式相加,声明PolyDoublyList多项式排序类排序类olynomial多项式类PolyDoublyList对象作为成员变量。
PolyDoublyList union(PolyDoublyList list) //返回相加的多项式,不调用深拷贝
(二元多项式相加,实现10-5题。
(一元多项式相乘,声明PolyDoublyList多项式排序类排序类olynomial多项式类PolyDoublyList对象作为成员变量。
Polynomial multi(Polynomial poly) //返回相乘的多项式
(二元多项式相乘,实现10-7题。
栈和队列及递归算法
计算表达式值
在例4.2、例4.6计算算术表达式值的基础上,增加以下功能。
⑴ 检查表达式语法是否正确。
⑵ 使用散列映射存储运算符集合,建立从运算符到优先级的映射,快速查找指定运算符的优先级。运算符集合包括位运算逻辑运算运算表达式位运算逻辑表达式表达式表达式LinkedMatrix矩阵类采用行的排序单链表LinkedMatrix矩阵类采用行的多项式排序单链表SinglyList(见2.4节)存储。
(设LinkedMatrix矩阵类采用行的排序链表LinkedMatrix矩阵类采用行的多项式排序链表LinkedMatrix矩阵类采用列的排序单链表LinkedMatrix矩阵类采用列的多项式排序单链表SinglyList(见2.4节)存储。
(设LinkedMatrix矩阵类采用列的排序链表LinkedMatrix矩阵类采用列的多项式排序链表CrossLinkedMatrix矩阵类采用十字单链表存储,见图5.13。
((((设CrossLinkedMatrix矩阵类采用十字双链表存储,改进图5.13,每个结点增加指向行列前驱的指针。
广义表
(((声明以双链表示的广义表类GenList,实现广义表的遍历、插入、删除、查找原子、比较相等BinaryTree二叉树类采用二叉链表存储结构,增加以下成员方法,public权限。
(以先根和中根序列构造二叉树,替换其中所有与pattern匹配的子树。成员方法声明如下:
BinaryTree(T prelist[], T inlist[]) //以先根和中根序列构造二叉树
void replaceAll(BinaryTree pattern, BinaryTree bitree)//替换所有与pattern匹配子树(深拷贝)
以中根和后根序列构造二叉树,替换其中所有与pattern匹配的子树。方法声明如下:
BinaryTree(T inlist[], T postlist[]) //以中根和后根序列构造二叉树
二叉树的成员方法,使用栈的非递归算法
(以先根和中根序列构造二叉树(使用栈的非递归算法),替换其中所有与pattern匹配的子树。
(以中根和后根序列构造二叉树(使用栈的非递归算法),替换其中所有与pattern匹配的子树。
对二叉树操作的静态方法,递归算法
(以中根和后根序列构造二叉树,求二叉树中两结点最近的共同祖先结点。方法声明如下:
T ancestor(BinaryTree bitree, T x, T y) //返回x、y结点最近的共同祖先结点
(以中根和后根序列构造二叉树,求一棵二