/**
*链表的节点类
* @author peiandsky
*
*/
public class Node {
/**
* 节点里面的数据
*/
int value;
/**
* 指向下一个节点的引用
*/
Node next;
public Node(int value) {
this.value = value;
next = null;
}
}
/**
*链表类,负责处理节点增加,删除,插入,查找
* @author Administrator
*
*/
public class LinkLine {
/**
* 链表的头结点
*/
Node head;
/**
* 链表的构造方法,初始为空链表
*/
public LinkLine() {
head = null;
}
/**
* 链表的添加节点操作
* @param n 要添加到链表中的节点
*/
public void add(Node n) {
n.next = head;
head = n;
}
/**
* 链表的删除操作
* @param n 要删除的节点
*/
public void remove(Node n) {
if (head == null) {
return;
}
if (head.value == n.value) {
head = head.next;
return;
}
Node pre = head;
Node cur = head.next;
while (cur != null) {
if (cur.value == n.value) {
pre.next = cur.next;
}
pre = pre.next;
cur = cur.next;
}
}
/**
* 链表的插入操作
* @param n 要插入的节点
* @param i 要插入的位置
*/
public void insert(Node n, int i) {
if (head == null) {
add(n);
return;
}
Node pre = head;
Node cur = head.next;
int j = 1;
while (cur != null) {
if (j == i) {
n.next = cur;
pre.next = n;
return;
}
pre = pre.next;
cur = cur.next;
j++;
}
pre.next = n;
}
public static void main(String[] args) {
LinkLine ll = new LinkLine();
// ll.add(new Node(1));
// ll.add(new Node(2));
// ll.add(new Node(3));
// ll.add(new Node(4));
// ll.remove(new Node(2));
ll.insert(new Node(5), 6);
Node temp = ll.head;
while (temp != null) {
System.out.println(temp.value);
temp = temp.next;
}
}
}