链表的创建
class SingleLinked {
Node HeadNode = new Node(0, "", "");
public void add(Node node) {
Node temp = HeadNode;
while (true) {
if (temp.next == null) {
break;
}
temp = temp.next;
}
temp.next = node;
}
public void addByOrder(Node node) {
Node temp = HeadNode;
while (true) {
if (temp.next == null) {
temp.next = node;
break;
} else if (temp.no < node.no && temp.next.no > node.no) {
node.next = temp.next;
temp.next = node;
break;
} else if (temp.no == node.no) {
System.out.println("节点已经存在");
break;
}
temp = temp.next;
}
}
public void update(Node newNode) {
if (HeadNode.next == null) {
System.out.println("链表为空");
return;
}
Node temp = HeadNode.next;
while (true) {
if (temp.next == null) {
throw new RuntimeException("no信息错误");
}
if (temp.next.no == newNode.no) {
temp.next.name = newNode.name;
temp.next.nickName = newNode.nickName;
break;
}
temp = temp.next;
}
}
public void delete(int no) {
if (HeadNode.next == null) {
System.out.println("链表为空");
return;
}
Node temp = HeadNode.next;
while (true) {
if (temp.next == null) {
System.out.println("没有对应的节点");
return;
}
if (temp.next.no == no) {
temp.next = temp.next.next;
break;
}
temp = temp.next;
}
}
public void showLinked() {
if (HeadNode.next == null) {
System.out.println("链表为空");
return;
}
Node temp = HeadNode.next;
while (true) {
if (temp.next == null) {
System.out.println(temp);
break;
}
System.out.println(temp);
temp = temp.next;
}
}
链表中的每个节点
class Node {
public int no;
public String name;
public String nickName;
public Node next;
public Node(int no, String name, String nickName) {
this.no = no;
this.name = name;
this.nickName = nickName;
}
@Override
public String toString() {
return new StringJoiner(", ", Node.class.getSimpleName() + "[", "]")
.add("no=" + no)
.add("name='" + name + "'")
.add("nickName='" + nickName + "'")
.toString();
}
}