gpt4 book ai didi

java - Java 中的多项式表示

转载 作者:行者123 更新时间:2023-12-01 09:35:33 26 4
gpt4 key购买 nike

我想借助链表来表示多项式。这是我的代码

import java.io.*;
import java.util.*;

public class Multiply_Poly
{
polynode head;
Multiply_Poly()
{
head=null;
}

public void construct_poly(polynode head,float coeff,int exp)
{
if(head==null)
{
polynode newnode = new polynode(coeff,exp);
head=newnode;
return;
}
else
{
polynode newnode = new polynode(coeff,exp);
polynode temp = head;
while(temp.next!=null)
temp=temp.next;

temp.next=newnode;
temp=newnode;
}
}

public void show_poly(polynode head)
{
if(head==null)
return;

else
{
while(head.next!=null)
{
System.out.print("(" + head.coeff + ")" + "x^" + "(" + head.exp + ")" + "+");
head=head.next;
}

System.out.print("(" + head.coeff + ")" + "x^" + "(" + head.exp + ")");
}
}

public static void main(String [] args)
{
Multiply_Poly m = new Multiply_Poly();
m.construct_poly(m.head,12,5);
m.construct_poly(m.head,9,4);
m.construct_poly(m.head,26,3);
m.construct_poly(m.head,18,2);
m.construct_poly(m.head,10,1);
m.construct_poly(m.head,5,0);

m.show_poly(m.head);
}
}

class polynode
{
float coeff;
int exp;
polynode next;

polynode(float coeff,int exp)
{
this.coeff=coeff;
this.exp=exp;
next=null;
}
}

我认为我的construct_poly函数不起作用。这就是为什么 show_poly 函数返回 null。是不是我在construct_poly中的else部分写得不正确?我的错误是什么?

最佳答案

在construct_poly方法中的if(head==null)部分只需更改

head=newnode; 
to this.head=newnode;

这样做的原因是您想要引用类变量polynode head,即在链接列表的开头,但仅使用head(而不是this.head)编译器将其引用作为参数传递的局部变量head。

因此我们使用this.head来引用调用对象的类变量。

记住:局部变量始终比全局变量具有更高的优先级。

也不需要 else 部分的最后一行,即

temp=newnode;

不是必需的。

经过上述更改后,您的代码运行得非常好。

关于java - Java 中的多项式表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38980261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com