赞
踩
在Java中,链表可以通过创建节点和链接节点来实现。以下是一个简单的链表实现示例:
- public class LinkedList {
- Node head; // 头结点
-
- // 节点类
- class Node {
- int data;
- Node next;
-
- Node(int d) {
- data = d;
- next = null;
- }
- }
-
- // 在链表头部插入节点
- public void push(int new_data) {
- Node new_node = new Node(new_data);
- new_node.next = head;
- head = new_node;
- }
-
- // 在链表中间插入节点
- public void insertAfter(Node prev_node, int new_data) {
- if (prev_node == null) {
- System.out.println("The given previous node cannot be null");
- return;
- }
- Node new_node = new Node(new_data);
- new_node.next = prev_node.next;
- prev_node.next = new_node;
- }
-
- // 在链表尾部插入节点
- public void append(int new_data) {
- Node new_node = new Node(new_data);
- if (head == null) {
- head = new Node(new_data);
- return;
- }
- new_node.next = null;
- Node last = head;
- while (last.next != null)
- last = last.next;
- last.next = new_node;
- return;
- }
-
- // 删除链表中的给定节点
- public void deleteNode(int key) {
- Node temp = head, prev = null;
- if (temp != null && temp.data == key) {
- head = temp.next;
- return;
- }
- while (temp != null && temp.data != key) {
- prev = temp;
- temp = temp.next;
- }
- if (temp == null)
- return;
- prev.next = temp.next;
- }
-
- // 打印链表
- public void printList() {
- Node tnode = head;
- while (tnode != null) {
- System.out.print(tnode.data + " ");
- tnode = tnode.next;
- }
- }
-
- // 测试
- public static void main(String[] args) {
- LinkedList list = new LinkedList();
- list.append(6);
- list.push(7);
- list.push(1);
- list.append(4);
- list.insertAfter(list.head.next, 8);
-
- System.out.println("Created Linked list is: ");
- list.printList();
-
- list.deleteNode(1);
- System.out.println("\nLinked List after Deletion of 1:");
- list.printList();
- }
- }
输出:
- Created Linked list is:
- 1 7 8 6 4
- Linked List after Deletion of 1:
- 7 8 6 4
在这个示例中,我们创建了一个 LinkedList 类,它包含一个 Node 类和一些方法来操作链表。我们可以使用 push() 方法在链表的头部插入节点,使用 insertAfter() 方法在链表中间插入节点,使用 append() 方法在链表尾部插入节点,使用 deleteNode() 方法删除链表中的给定节点,并使用 printList() 方法打印链表。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。