Java 链表实现
代码
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
| package LinkList;
public class Node { int data; Node next;
public Node(int data) { this.data = data; this.next = null; }
public static void Init(Node head, int length) { int i = 0; Node newHead = head; while (i < length) { Node tmp = new Node(0); tmp.next = null; newHead.next = tmp; newHead = newHead.next; i++; } }
public static void Print(Node head) { Node newHead = head; while (newHead != null) { System.out.println(newHead.data); newHead = newHead.next; } }
public static void Insert(Node head, int index, int data) { Node newHead = head; int i = 1; while (i < index && newHead != null) { newHead = newHead.next; i++; } if (newHead == null) { System.out.println("索引超过长度"); return; } Node tmp = new Node(data); tmp.next = newHead.next; newHead.next = tmp;
}
public static int Delete(Node head, int index) { int res; int i = 1; Node newHead = head; while (i < index && newHead != null) { newHead = newHead.next; i++; } if (newHead == null) { System.out.println("索引超过长度,无法删除"); return 0; } res = newHead.next.data; newHead.next = newHead.next.next; return res; }
public static int Find(Node head, int index) { Node newHead = head; int i = 0; while (i < index && newHead != null) { newHead = newHead.next; i++; } if (newHead == null) { System.out.println("索引超过长度,无法查找"); return 0; } return newHead.data; }
public static void Alter(Node head, int index, int data) { int i = 0; Node newHead = head; while (i < index && newHead != null) { newHead = newHead.next; i++; } if (newHead == null) { System.out.println("索引超过长度,无法更改"); return; } newHead.data = data; }
public static int GetLength(Node head) { Node newHead = head; int length = -1; while (newHead != null) { length++; newHead = newHead.next; } return length; } }
|
主要实现了对链表的初始化以及增删查改等,未实现排序,逆序等功能