From 6bdd4ff51ab6d3e088f553cf45d6b2406292f073 Mon Sep 17 00:00:00 2001 From: qiuyizhi Date: Wed, 4 Nov 2020 00:14:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Main.java | 33 +++++++++---- ti1/Node.java | 10 ++++ ti1/OneLinkedList.java | 102 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 137 insertions(+), 8 deletions(-) create mode 100644 ti1/Node.java create mode 100644 ti1/OneLinkedList.java diff --git a/Main.java b/Main.java index 0574288..95287be 100644 --- a/Main.java +++ b/Main.java @@ -1,10 +1,27 @@ +import ti1.OneLinkedList; + class Main { - public static void main(String[] args) { - LinkedList ll = new LinkedList(); - ll.addToFront(1); - ll.addToFront(2); - ll.addToRear(3); - ll.print(); - - } + public static void main(String[] args) { + OneLinkedList oneLinkedList = new OneLinkedList(); + oneLinkedList.printItems(); + oneLinkedList.addToFront("5"); + oneLinkedList.addToFront("2"); + oneLinkedList.printItems(); + oneLinkedList.addToRear("76"); + oneLinkedList.addToRear("12"); + oneLinkedList.printItems(); + boolean itemExist = oneLinkedList.findItem("12"); + System.out.println(itemExist ? "节点存在" : "节点不存在"); + System.out.println("链表长度为" + oneLinkedList.size()); + oneLinkedList.printItems(); + oneLinkedList.deleteItems("12"); + oneLinkedList.printItems(); + oneLinkedList.deleteItems("2"); + oneLinkedList.printItems(); + oneLinkedList.deleteItems("21"); + oneLinkedList.printItems(); + + + + } } \ No newline at end of file diff --git a/ti1/Node.java b/ti1/Node.java new file mode 100644 index 0000000..e905b6d --- /dev/null +++ b/ti1/Node.java @@ -0,0 +1,10 @@ +package ti1; + +public class Node { + E item; + Node next = null; + + Node(E item) { + this.item = item; + } +} \ No newline at end of file diff --git a/ti1/OneLinkedList.java b/ti1/OneLinkedList.java new file mode 100644 index 0000000..87778a0 --- /dev/null +++ b/ti1/OneLinkedList.java @@ -0,0 +1,102 @@ +package ti1; + +public class OneLinkedList { + + private Node head; + + public OneLinkedList() { + this.head = null; + } + + //添加到头部 + public void addToFront(E value) { + Node node = new Node(value); + if (head != null) { + node.next = head; + } + head = node; + } + + //添加到最后 + public void addToRear(E value) { + Node node = new Node<>(value); + if (head == null) { + head = node; + } else { + Node temp = head; + while (temp.next != null) { + temp = temp.next; + } + temp.next = node; + } + } + + // 打印所有节点 + public void printItems() { + if (head != null) { + String nodeListStr = ""; + Node temp = head; + while (temp != null) { + nodeListStr += (temp.item + "->"); + temp = temp.next; + } + System.out.println(nodeListStr); + } else { + System.out.println("空链表"); + } + } + + //删除节点 前提元素不重复 + public void deleteItems(E value) { + if (head != null) { + String headStr = (String) head.item; + if (headStr.equals(value)){ + head= head.next; + return; + } + Node preNode = head; + Node curNode = head.next; + while (curNode != null) { + //这里全当字符串处理 + String itemStr = (String) curNode.item; + if (itemStr.equals(value)) { + //内容相同进行删除 结束循环 + preNode.next= curNode.next; + return; + } + preNode=preNode.next; + curNode=preNode.next; + } + System.out.println("无此节点,删除失败"); + } else { + System.out.println("链表为空,无法进行删除操作"); + } + } + + //判断节点是否存在 + public boolean findItem(E value) { + Node temp = head; + while (temp != null) { + //这里全当字符串处理 + String itemStr = (String) temp.item; + if (itemStr.equals(value)) { + //内容相同节点存在结束循环 + return true; + } + temp = temp.next; + } + return false; + } + + //计算链表长度数值 + public int size() { + int linkedListLength = 0; + Node temp = head; + while (temp != null) { + linkedListLength++; + temp = temp.next; + } + return linkedListLength; + } + +} -- Gitee