回想我在这里的基本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