[問題]linked list程式問題

看板java作者 (小翰)時間16年前 (2009/11/20 19:57), 編輯推噓2(202)
留言4則, 4人參與, 最新討論串1/1
題目是用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
奇怪~我在eclipse上跑正常…
11/20 20:37, 2F

11/20 20:39, , 3F
classpath...?
11/20 20:39, 3F

11/20 23:24, , 4F
精華區 z-3-2。真是莫名其妙的文章... [嘆氣]
11/20 23:24, 4F
文章代碼(AID): #1B1eGmt6 (java)