1

我正在尝试实现一个基于数组的链表,该链表必须按字母顺序排列。到目前为止,我有要插入和节点的代码,但想检查我是否正确,以及是否有人可以帮助我编写一个主要方法来显示列表的元素。下面是我到目前为止的代码。

package listpackage;

import java.io.IOException;

public class ArrayLL {
private int MAX_CAP = 100;
private ANode[] list;
private int size;

public ArrayLL(){
    list = new ANode[MAX_CAP];
    list[list.length-1] = new ANode(null, -1);
    for(int i = 0; i < list.length-1; i++){
        list[i] = new ANode(null, i+1);
    }
    size = 0;
}

public void addElem(String s) throws IOException{
    if(size == 0){
        ANode a = new ANode(s, -1);
        list[0] = a;
        size++;
    }else if(size == MAX_CAP + 1){
        throw new IOException("List is full");
    }else{
        ANode a = list[0];
        for(int i = 0; i< size; i++){
            if(a.getData().compareTo(s)>0){
                ANode b = new ANode(s,i+1);
                for(int j = size; j > i; j--){
                    list[j] = list[j+1];
                }
                list[i] = b;
                size++;
                break;
            }else{
                ANode c = new ANode(s,-1);
                list[size+1] = c;
            }
        }
    }
}

public int getSize(){
    return size;
}

}

class ANode{
private String data;
private int link;

public ANode(String d, int l){
    data =  d;
    link = l;
}

public String getData(){
    return data;
}

public int getLink(){
    return link;
}
}
4

1 回答 1

0

要打印列表的元素,您需要对其进行迭代以查看内容。

for(Object obj : list) {
  System.out.println(obj);
}

你的对象也需要被.toString()覆盖。

希望这可以帮助

于 2013-02-16T23:36:33.947 回答