作者little46star (小翰)
看板java
标题[问题]linked list程式问题
时间Fri Nov 20 19:57:30 2009
题目是用linked list表示多项式的"加" "减" "乘"
执行程式时出现一些问题
程式码,电脑检查过好像没有错
可是执行不出来
一直出现
java.lang.NoSuchMethodError: main
Exception in thread "main"
的错误...
不知道怎麽修改才能让程式执行
--------------------------------------------------
程式码:
//用linked list来表示多项式的加、减、乘
public class AAA {
public Monomial first; // 首项
public void main(Monomial m) {
if (m == null) {
// do nothing
} else if (first == null) {
first = m;
} else {
Monomial current = first;
while (current != null) {
//如果指数相同,则相加
if (current.exp == m.exp) {
current.coef += m.coef;
break;
} else if (current.link == null) { // 否则直接扔到最後
current.link = m;
break;
}
current = current.link; //指标後移
}
}
}
public void append(double c, int i) //输入要做运算的多项式,将它的值传回给
sb这个类
{
main(new Monomial(c, i));
}
public String toString() {
StringBuffer sb = new StringBuffer();
Monomial current = first;
while (current.link != null) {
sb.append("(" + current.coef + "x^" + current.exp + ") + ");
current = current.link; //指标後移
}
sb.append("(" + current.coef + "x^" + current.exp + ")");
return sb.toString();
}
// 两个多项式相加
public AAA add(AAA p2) {
AAA result = new AAA();
Monomial current = this.first; //将首项设为current
while (current != null) {
result.append(current.coef, current.exp); //注意这里
current = current.link; //指标後移
}
current = p2.first;
while (current != null) {
result.append(current.coef, current.exp);
current = current.link; //指标後移
}
return result;
}
// 两个多项式相减 (this- p2)
public AAA substract(AAA p2) {
AAA result = new AAA();
Monomial current = this.first;
while (current != null) {
result.append(current.coef, current.exp); // 注意这里
current = current.link; //指标後移
}
current = p2.first;
while (current != null) {
result.append(-current.coef, current.exp);
current = current.link; //指标後移
}
return result;
}
// 两个多项式相乘
public AAA multiply(AAA p2) {
AAA result = new AAA();
Monomial c1 = this.first;
Monomial c2 = p2.first;
while (c1 != null) {
while (c2 != null) {
result.append(c1.coef * c2.coef, c1.exp
+ c2.exp);
c2 = c2.link;
}
c1 = c1.link;
c2 = p2.first;
}
return result;
}
public static void main(String[] args) {
AAA p1 = new AAA();
p1.append(2.2, 1);
p1.append(3.3, 2);
p1.append(4.111, 7);
System.out.println("p1: " + p1);
AAA p2 = new AAA();
p2.append(2.232, 5);
p2.append(3.444, 6);
p2.append(5.777, 1);
System.out.println("p2: " + p2);
AAA result = p1.add(p2);
System.out.println("加: " + result);
result = p1.substract(p2);
System.out.println("减: " + result);
result = p1.multiply(p2);
System.out.println("乘: " + result);
}
}
class Monomial {
double coef; //系数
int exp; //指数
Monomial link; //後继节点
public Monomial() {
//如果不输入资料就什麽都不做
}
public Monomial(double c, int i) {
this.coef = c;
this.exp = i;
}
} //end
--------------------------------------------------
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.192.118.111
1F:推 snowlike:减 11/20 20:29
2F:→ ken915007:奇怪~我在eclipse上跑正常… 11/20 20:37
3F:→ tkcn:classpath...? 11/20 20:39
4F:推 PsMonkey: z-3-2。真是莫名其妙的文章... [叹气] 11/20 23:24