public class MyNode {
private Node headNode;
private Node lastNode;
private int size;
public void insert(int index , int data) {
if (index < 0 || index > size) {
throw new IndexOutOfBoundsException();
}
Node node = new Node(data);
if (0 == size) {
headNode = node;
lastNode = node;
}else if (0 == index) {
//頭節點插入
node.next = headNode;
headNode = node;
}else if (size == index) {
//尾節點插入
lastNode.next = node;
lastNode = node;
}else {
Node preNode = get(index-1);
Node nextNode = preNode.next;
preNode.next = node;
node.next = nextNode;
}
size++;
}
public Node get(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException();
}
Node temp = headNode;
for (int i = 0;i < index; i++) {
temp = temp.next;
}
return temp;
}
public Node delete(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException();
}
Node deleteNode = null;
if (0 == index) {
//刪除頭結點
deleteNode = headNode;
headNode = headNode;
}else if (index == size - 1) {
//刪除尾節點
Node preNode = get(index - 1);
deleteNode = lastNode;
preNode.next = null;
lastNode = preNode;
}else {
Node preNode = get(index - 1);
deleteNode = preNode.next;
preNode.next = preNode.next.next;
}
size--;
return deleteNode;
}
public void outPut() {
Node temp = headNode;
while (null != temp) {
System.out.println(temp.data);
temp = temp.next;
}
}
public static void main(String[] args) {
MyNode myNode = new MyNode();
myNode.insert(0,1);
myNode.insert(1,2);
myNode.insert(2,3);
myNode.insert(3,4);
myNode.insert(4,5);
myNode.delete(2);
myNode.outPut();
}
鏈表
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.