运行链表后没有显示输出

时间:2017-09-16 04:17:40

标签: java linked-list output

我有三个java类,它们构造节点并实现几个方法来操作链表。我的节点类包含一个节点。我的节点列表类包含操纵链表的方法。我的链接方法构建一个链表,我的print方法是打印链表。我使用冒泡排序方法对链表进行排序。当我从类列表中的main方法调用这3个方法时,我的控制台中没有显示输出。我已经尝试了一切,但我没有设法打印一些输出,并且没有错误消息表明我的代码有问题。

节点类

public class iNode{
public int item;
public iNode next;

public iNode(int i, iNode n){ 
    item = i; 
    next = n; 
}
public iNode(int i){ 
    item = i; 
    next = null; 
}
// Node class
public int getItem() {
    return this.item;
}

节点列表类

public class iNode_List {

public  static iNode head;
public static int size; 

public  iNode_List(){
    this.head = null;
    this.size = 0;
}

public static iNode link(int n, int m){

    iNode previous;
    iNode current;

    int i = 0;
    previous = null;
    while (i < n) {
        current = new iNode(ThreadLocalRandom.current().nextInt(0, m-1), previous);
        previous = current;
        head = current;
        i++;
    }
    return previous;
}

public static void print() {
    iNode currentNode = head;
    while(currentNode != null) {
        int data = currentNode.getItem();
        System.out.println(data);
        currentNode = currentNode.next;
    }

}

public static void Bubble_Sort (){
      if (size > 1) {
            for (int i = 0; i < size; i++ ) {
                iNode currentNode = head;
                iNode next = head.next;
                for (int j = 0; j < size - 1; j++) {
                    if (currentNode.item > next.item) {
                        int temp = currentNode.item;
                        currentNode.item = next.item;
                        next.item = temp;
                    } 
                    currentNode = next;
                    next = next.next;                   
                } 
            }
        }
}

列表方法

public class list {

public static void main (String [] args){
    iNode_List x = new iNode_List();
    x.link(10, 10);
    x.Bubble_Sort();
    x.print();

}

1 个答案:

答案 0 :(得分:1)

您的问题是您从未向head分配任何值,但您的方法会打印head,它始终为空。这就是没有任何表现的原因。

您可能希望在head = current;方法的末尾添加link