我是数据结构的新手。我很好奇学习数据结构,但我没有找到任何健康的教程,所以我在这里发布它认为有人会帮助我。我知道链表的理论,但实施时却完全空白。如果有人能让我理解它是如何工作的,对我来说真的很有用。就像如何遍历链表,插入和删除一样。请提供一个运行代码,以便我理解。 我知道有很多人会考虑将这个问题标记为重复并且将此问题投降。如果你们为我提供一个真正有用的好解决方案,而不是发现错误。谢谢。
答案 0 :(得分:0)
首先,如果你继续使用youtube并搜索Derek Banas,你会在LinkedLists上找到一个很棒的视频,以及如何实现它们。他谈得很快,但我认为内容很好。跟随他的视频,在视频之后我认为你会有更好的理解。
答案 1 :(得分:0)
简单实现链接列表,显示追加,插入,删除和迭代。效率低下,他们需要弄清楚:)去做一些研究,看看如何让它变得更好。
public class LinkedList {
public static class Node {
private Object data;
private Node next = null;
public Node(Object data) {
this.data = data;
}
public void setNext(Node n) {
next = n;
}
public Node getNext() {
return next;
}
public Object getData() {
return data;
}
}
public static void iterate(Node n) {
while (n != null) {
System.out.println(n.getData());
n = n.getNext();
}
}
public static void insert(Node newNode, Node after) {
newNode.setNext(after.getNext());
after.setNext(newNode);
}
public static void delete(Node toDelete, Node root) {
Node n = root;
while (n.getNext() != toDelete) {
n = n.getNext();
}
n.setNext(toDelete.getNext());
}
public static void main(String[] args) {
Node a = new Node("a");
Node b = new Node("b");
Node c = new Node("c");
// append
a.setNext(b);
b.setNext(c);
// iterate
System.out.println("Initial list");
iterate(a);
// insert d after b
Node d = new Node("d");
insert(d, b);
// iterate again
System.out.println("After insert");
iterate(a);
// delete d
delete(d, a);
// iterate again
System.out.println("After delete");
iterate(a);
}
}