0
我一直在尝试在链表实现上工作我认为我已经钉了,但由于某种原因,我无法解决如何在开始时向列表添加新节点列表。Java多项式单链表问题
这是一个多项式加法,其他一切按预期工作,但本节不按预期方式工作。它返回没有变化的多项式...我想我错过了一些非常简单的东西,但无法看到它。
else if (power > polynomial.powerMax())
{
Polynomial newlink = new Polynomial(coefficient,power);
newlink.successor = polynomial;
polynomial = newlink;
}
全法
public class Polynomial
{
final static private int mantissa = 52;
final static private double epsilon = Math.pow(2.0, -mantissa);
private double coefficient = 0.0;
private int power = 0;
private Polynomial successor=null;
public Polynomial(double coefficient, int power)
{
if (Double.isNaN(coefficient)) return;
if (Math.abs(coefficient) < epsilon) return;
if (power<0) return;
this.coefficient=coefficient;
this.power=power;
}
public static void add(Polynomial polynomial, double coefficient, int power)
{
if (polynomial == null) return;
if (Math.abs(coefficient) < epsilon) coefficient = 0.0;
if (coefficient == 0.0) return;
if (power < 0) return;
if (power < polynomial.powerMin())
{
Polynomial newNode = new Polynomial(coefficient,power);
if (polynomial.successor != null)
{
while (polynomial.successor != null)
{
polynomial.successor = polynomial.successor.successor;
}
polynomial.successor = newNode;
}
else if (polynomial.successor == null)
polynomial.successor = newNode;
}
else if (power > polynomial.powerMax())
{
Polynomial newlink = new Polynomial(coefficient,power);
newlink.successor = polynomial;
polynomial = newlink;
}
else
{
if (power == polynomial.power)
polynomial.coefficient = polynomial.coefficient + coefficient;
}
}
您的意思是:“在Java中,变量通过**值**传递,并且引用也通过值传递,这意味着引用被复制”。 – Jesper
@Jasper我改变了一下措辞,使自己更清晰 –
有趣..好吧,这是一个旧的Uni作业,讲师已经给出了部分代码。 public static void add(Polynomial polynomial,double coefficient,int power) 已给出..所以这是不正确的? – Craig