在当前位置按星号显示链表
Displaying Linked List in order with asterisk at the current position
我需要按顺序显示一个循环链表。我知道循环列表在技术上没有开始,但我正在考虑首先添加的节点作为开始。我已经完成了。我只是创建了一个引用第一个节点的临时引用,然后遍历列表。
但是,我还需要在 "current position" 处显示一个星号,这是引用 "cur" 引用的节点。
当然我可以从 cur 开始,打印一个星号并从那里在列表周围画圈,但那样不会按顺序打印列表。有没有办法查看哪些引用引用了 node/address?或者更简单的方法来做到这一点?
public void displayList(){
Node temp = this.getHead();
System.out.print(" ~ ");
for(int i = 0; i < this.getListLength(); i++){
System.out.print(temp.getId() + "/" + temp.getTicks() + "/" + temp.getName() + " ~ ");
temp = temp.getLink();//advance temp
}
System.out.println();
}
如果你想从字面上检查引用,你可以尝试使用node == cur
比较节点
但是,在节点 class 中定义 equals()
方法并使用该方法比较节点可能更安全:cur.equals(node)
。根据 equals() 的 problem/implementation,这可能会产生误导(例如:多个节点具有相同的数据但索引不同),因此请务必编写测试!
我需要按顺序显示一个循环链表。我知道循环列表在技术上没有开始,但我正在考虑首先添加的节点作为开始。我已经完成了。我只是创建了一个引用第一个节点的临时引用,然后遍历列表。
但是,我还需要在 "current position" 处显示一个星号,这是引用 "cur" 引用的节点。
当然我可以从 cur 开始,打印一个星号并从那里在列表周围画圈,但那样不会按顺序打印列表。有没有办法查看哪些引用引用了 node/address?或者更简单的方法来做到这一点?
public void displayList(){
Node temp = this.getHead();
System.out.print(" ~ ");
for(int i = 0; i < this.getListLength(); i++){
System.out.print(temp.getId() + "/" + temp.getTicks() + "/" + temp.getName() + " ~ ");
temp = temp.getLink();//advance temp
}
System.out.println();
}
如果你想从字面上检查引用,你可以尝试使用node == cur
但是,在节点 class 中定义 equals()
方法并使用该方法比较节点可能更安全:cur.equals(node)
。根据 equals() 的 problem/implementation,这可能会产生误导(例如:多个节点具有相同的数据但索引不同),因此请务必编写测试!