看不懂的链表
public class NodeTest {
public static void main(String[] args) {
Node node1 = new Node(1, "李白1", "刺客1");
Node node2 = new Node(2, "李白2", "刺客2");
Node node3 = new Node(3, "李白3", "刺客3");
Node node4 = new Node(4, "李白4", "刺客4");
Node node5 = new Node(5, "李白5", "刺客5");
Node node6 = new Node(5, "李白", "刺客5");
SingleLinkedList singleLinkedList = new SingleLinkedList();
singleLinkedList.add(node1);
singleLinkedList.add(node2);
singleLinkedList.add(node4);
singleLinkedList.add(node5);
singleLinkedList.add2(node3);
singleLinkedList.delete(3);
singleLinkedList.delete(6);
singleLinkedList.change(node6);
singleLinkedList.change(1, "李白6", "刺客6");
singleLinkedList.show();
}
}
class SingleLinkedList{
private Node head=new Node(0, "", "");
public void add(Node node){
Node temp = head;
while (true){
if (temp.next == null){
break;
}
temp = temp.next;
}
temp.next = node;
}
public void add2(Node node){
Node temp = head;
boolean flag = false;
while (true){
if (temp.next == null){
break;
}
if (temp.next.no > node.no){
break;
}else if (temp.next.no == node.no){
flag = true;
break;
}
temp = temp.next;
}
if (flag){
System.out.println("编号已经存在,不能添加");
}else {
node.next = temp.next;
temp.next = node;
}
}
public void delete(int no){
Node temp = head;
boolean flag = false;
while (true){
if (temp.next == null){
break;
}
if (temp.next.no == no){
flag = true;
break;
}
temp = temp.next;
}
if (flag){
temp.next = temp.next.next;
}else {
System.out.println("不存在");
}
}
public void change(int no, String name, String type){
if(head.next == null){
System.out.println("链表为空");
return;
}
Node temp = head.next;
boolean flag = false;
while (true){
if(temp == null){
System.out.println("没有找到数据");
break;
}
if (temp.no == no){
flag = true;
break;
}
}
if (flag){
temp.name = name;
temp.type = type;
}
}
public void change(Node node){
Node temp = head;
//boolean flag = false;
delete(node.no);
add2(node);
}
public void show(){
if (head.next == null){
System.out.println("该链表为空");
return;
}
Node temp = head.next;
while (true){
if (temp == null){
break;
}
System.out.println(temp);
temp = temp.next;
}
}
}
class Node{
public int no;
public String name;
public String type;
public Node next;
public Node(int no, String name, String type){
this.no = no;
this.name = name;
this.type = type;
}
@Override
public String toString() {
return "Node{" +
"no=" + no +
", name='" + name + '\'' +
", type='" + type + '\'' +
'}';
}
}
评论 (0)