回想我在這裏的基本ADT的東西,並試圖通過學習Java一石二鳥,而我正在努力編寫一個簡單的算法與一個通用鏈表(我創建自己)的合併排序。事實證明,這比我想象的要困難得多!任何人都可以幫我嗎?我開始了對基礎工作,如我在得到進一步會更新這個帖子For循環與泛型數組?
我對通用的鏈表代碼如下:
public class NodeList<T> {
private Comparable head;
private NodeList tail;
public NodeList(Comparable item, NodeList list) {
head = item;
tail = list;
}
}
我想在另一個訪問這個類我做了如下的類:
public class MyList<T> {
private NodeList<T> nodes;
private int size;
public MyList() {
nodes = null;
}
public MyList(T[] array){
for(int countArray = 0; countArray <= array.length() ; countArray++) {
nodes= new NodeList(value, nodes);
size++;
}
}
它應該使用鏈接列表從數組中添加通用項目。不幸的是,它並沒有,這是我遇到的第一個問題。我得到的錯誤:
無法找到符號:方法的長度()。
有人可以給我一些建議,我怎麼能解決這個問題?
非常感謝!
爲什麼你想歸併鏈表而不是一個數組支持的名單? Mergesort是用於具有O(1)(恆定時間)元素訪問的列表,但鏈接列表具有O(n)(線性時間)元素訪問。 – 2011-03-03 16:09:17
底部的做法是什麼?你正在循環一個數組,但不使用它的任何值,多次設置和重新設置'nodes',並將'size'設置爲傳入數組的長度。我很困惑。 – 2011-03-03 16:09:45