class Node {
public int no;
public Node next;
public Node pre;
public Node(int no) {
if (no >= 0) {
this.no = no;
}
}
@Override
public String toString() {
return "Node{" +
"no=" + no +
'}';
}
}
public class DoubleLinkedList {
Node head = new Node(0);
public void add(Node node) {
Node temp = head;
while (true) {
if (temp.no == node.no) {
return;
} else if (temp.next == null) {
break;
}
temp = temp.next;
}
temp.next = node;
node.pre = temp;
}
public void addByOrder(Node node) {
Node temp = head;
while (true) {
if (temp.no == node.no) {
return;
} else if (temp.next == null) {
break;
} else if (temp.next.no > node.no) {
temp.next.pre = node;
node.next = temp.next;
break;
}
temp = temp.next;
}
temp.next = node;
node.pre = temp;
}
public void update(Node node) {
Node temp = head.next;
while (true) {
if (temp == null) {
return;
} else if (temp.no == node.no) {
if (temp.next != null) {
temp.next.pre = node;
node.next = temp.next;
}
temp.pre.next = node;
node.pre = temp.pre;
return;
}
temp = temp.next;
}
}
public void delete(int no) {
Node temp = head.next;
while (true) {
if (temp == null) {
return;
}
if (temp.no == no) {
temp.pre.next = temp.next;
if (temp.next != null) {
temp.next.pre = temp.pre;
}
return;
}
temp = temp.next;
}
}
public void show() {
Node temp = head.next;
while (true) {
if (temp == null) {
return;
}
System.out.println(temp);
temp = temp.next;
}
}
public int getLength() {
int length = 0;
Node temp = head.next;
while (temp != null) {
length++;
temp = temp.next;
}
return length;
}
public void merge(Node n1, Node n2) {
Node cur = head;
while (n1 != null && n2 != null) {
if (n1.no <= n2.no) {
cur.next = n1;
n1.pre = cur;
n1 = n1.next;
} else {
cur.next = n2;
n2.pre = cur;
n2 = n2.next;
}
cur = cur.next;
}
if (n1 == null) {
cur.next = n2;
n2.pre = cur;
} else {
cur.next = n1;
n1.pre = cur;
}
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战