[問題]linked list程式問題
題目是用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
推
11/20 20:29, , 1F
11/20 20:29, 1F
→
11/20 20:37, , 2F
11/20 20:37, 2F
→
11/20 20:39, , 3F
11/20 20:39, 3F
推
11/20 23:24, , 4F
11/20 23:24, 4F