我有三个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();
}
答案 0 :(得分:1)
您的问题是您从未向head
分配任何值,但您的方法会打印head
,它始终为空。这就是没有任何表现的原因。
您可能希望在head = current;
方法的末尾添加link
。