【发布时间】:2023-03-26 04:10:01
【问题描述】:
我正在大学学习数据结构课程,但我无法理解为什么我的单链表不遵循 FIFO 算法。
这是我的 Node/PSVM 类:
public class Node {
protected int data;
protected Node next;
Node(int element){
this.data = element;
next = null;
}
public static void main(String[] args) {
LinkedList ll = new LinkedList();
ll.addElement(300);
ll.addElement(600);
ll.addElement(900);
ll.addElement(1200);
ll.printList();
}
}
这是我的链表类:
public class LinkedList {
// create a reference of type node to point to head
Node head;
// keep track of the size of ll
int size = 0;
void printList() {
Node n = head;
for (int i = 0; i < llSize(); i++) {
System.out.print(n.data + " ");
n = n.next;
}
System.out.println("");
}
int llSize() {
return this.size;
}
boolean isEmpty() {
return size == 0;
}
void addElement(int element) {
if (isEmpty()) {
head = new Node(element);
} else {
Node nNode = new Node(element);
Node current = head;
while(current.next != null){
current = current.next;
}
current.next = nNode;
}
this.size++;
}
}
如果这是一个基本问题/问题,请提前道歉。我问过我的教授,她给我发了一个 YouTube 链接,但确实没有帮助。
感谢您的宝贵时间。
【问题讨论】:
-
无需道歉。但是您确实两次发布了相同的代码。您可能希望显示预期/实际输入和输出
-
糟糕,抱歉。我刚刚对其进行了编辑并添加了我的 LL 课程。
-
我没有在代码中看到错误。您从
printList通话中获得的输出是什么?您期待什么?旁注:将您的main放在Node类中有点奇怪 - 不是错误,只是意外。 -
我也没有在您发布的内容中看到任何逻辑错误。但是有一个建议,保留对尾节点的单独引用会更有效,而不是每次添加元素时都遍历整个列表。
-
感谢所有响应这是我的输出:1200 900 600 300 它不应该按照插入的顺序输出吗?先进先出?另外,我可以将我的 main 放在不同的文件中以保持独立。
标签: java algorithm data-structures linked-list singly-linked-list