1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
| 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; 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 + '\'' + '}'; }
}
|