package com.datastructure.doublinked;
public class DoublyLinkedList {
public static void main(String[] args) {
Doublelinked linked = new Doublelinked();
linked.add(new Node(1, "aaa"));
linked.add(new Node(2, "bbb"));
linked.add(new Node(3, "ccc"));
linked.add(new Node(4, "ddd"));
linked.list();
}
}
class Doublelinked {
Node head = new Node(0, "");
Node tail;
int length;
public Doublelinked() {
length = 0;
}
public void add(Node node) {
if (head.next == null) {
head.next = node;
node.prev = head;
tail = node;
++length;
return;
}
tail.next = node;
node.prev = tail;
tail = node;
++length;
}
public void remove(int no) {
if (head.next == null) {
System.out.println("链表为空(删除)");
return;
}
Node node = head.next;
do {
if (node.no == no) {
if (node.next != null) {
node.prev.next = node.next;
node.next.prev = node.prev;
--length;
return;
}
node.prev.next = null;
return;
}
}
while ((node = node.next) != null);
System.out.println("没有找到你要的数据(删除)");
}
public void update(Integer no, String name) {
if (head.next == null) {
System.out.println("链表为空(修改)");
return;
}
Node node = head.next;
do {
if (node.no == no) {
node.name = name;
return;
}
}
while ((node = node.next) != null);
System.out.println("没有找到你要的数据(修改)");
}
public void list() {
if (head.next == null) {
System.out.println("链表为空(遍历)");
return;
}
Node node = head.next;
do {
System.out.println(node);
}
while ((node = node.next) != null);
}
}
class Node {
int no;
String name;
Node prev;
Node next;
public Node(int no, String name) {
this.no = no;
this.name = name;
}
@Override
public String toString() {
return "Node{" +
"no=" + no +
", name='" + name + '\'' +
'}';
}
}
2020年9月24日 双向链表
最新推荐文章于 2024-05-24 20:26:48 发布