链接列表打印空白

时间:2016-10-16 23:17:41

标签: java

我的链接列表打印为空白。有人可以解释我在这里缺少的东西。

class Linklist {
private Linklist first;
public int items;
public int itemLocation;
public int lastIndex = -1;
private final String[] list;
public Linklist nextlink;

//Link constructor
public Linklist(int totalItems) {
    items = 0;
    list = new String[totalItems];
}

public Linklist getNext()
{
    return this.nextlink;
}

public void setNext(Linklist n)
{
    nextlink = n;
}

public void insert (String item){
    list[items] = item;
        items++;
}

public void delete(String item){
    int location = 0;

    while(item.compareTo(list[location]) != 0)
        location++;

    list[location] = list[items -1];
    items--;
}

public boolean doesExist (String item){
    boolean search;
    int location = 0;
    boolean found = false;

    search = (location < items);
    while (search && !found)
    {
        if (item.compareTo(list[location])==0)
            found = true;
        else
        {
        location++;
        search = (location<items);
        }
    }
    return found;
}

public void printUnsortedlist(){
    System.out.print("{" + list + "} ");
}

public void printList(){
    Linklist currentLink = first;
    System.out.print("List: ");
    while(currentLink != null){
        currentLink.printUnsortedlist();
        currentLink = currentLink.getNext();
    }
    System.out.println("");
}
}

public class Unsortedlist{
/**
 * @param args the command line arguments
 */
public static void main(String[] args) {        
    Linklist list = new Linklist(9);

    list.insert("Sun");
    list.insert("Mercury");
    list.insert("Venus");
    list.insert("Earth");
    list.insert("Mars");
    list.insert("Jupiter");
    list.insert("Neptune");
    list.insert("Saturn");
    list.insert("Uranus");


    list.printList();

    list.delete("Sun");

    if(list.doesExist("Earth"))
        System.out.println("Earth is in the list");
    else
        System.out.println("Earth does not exist!");

    list.printList();

}
}

这是我的输出:

List: 
Earth is in the list
List: 
BUILD SUCCESSFUL (total time: 0 seconds)

当我整合size()方法时,例如:

 public int size(){
 int currentSize = 0;
 Linklist current = head;
 while(current != null){
    currentSize = currentSize + 1;
    current = current.getNext();
}

    return currentSize;
}

我将此作为输出:

{8} Earth is in the list

我的链接列表在那里,但无法弄清楚它为什么打印为空白。

1 个答案:

答案 0 :(得分:0)

对于你的代码,一些地方让我更加困惑。

首先,为什么你已经有一个字段“列表”,但是你也设置了一个指向下一个链接的指针,如果你只想打印成一个列表,你只能设置两个字段String value和{{ 1}},然后你可以打印你的清单。

其次,我认为你的列表空白的原因是你将Linklist next设置为first,并且首先一直为空。要解决这个问题,也许你可以改变{{1转到currentLink,然后您的first代码将按您的喜好运行。

就像这样:

this

但是,你仍然需要在许多地方改进代码,你真的希望代码做得很完美。希望这能帮到你。