package com.coding.basic; public class MyLinkedList implements MyList { private int size; private Node head; public MyLinkedList() { head = new Node(); head.data = "ͷ���"; head.next = null; } public void add(Object o) { Node p = head; while (p.next != null) { p = p.next; } Node p3 = new Node(); p3.data = o; p.next = p3; size++; } public void add(int index, Object o) { int num = 0; Node p = head; while (p.next != null) { if (num == index) { Node p2 = new Node(); p2.data = o; p2.next = p.next; p.next = p2; size++; } p = p.next; num++; } } public Object get(int index) { int num = 0; Node p = head.next; while (p != null) { if (num == index) { return p.data; } p = p.next; num++; } return null; } public Object remove(int index) { int num = 0; Node p = head; while (p.next != null) { if (num == index) { Node p2 = p.next; p.next = p.next.next; size--; return p2.data; } p = p.next; num++; } return null; } public int size() { return size; } public void addFirst(Object o) { Node p = new Node(); p.data = o; p.next = head.next; head.next = p; size++; } public void addLast(Object o) { Node p = head; while (p.next != null) { p = p.next; } Node p2 = new Node(); p2.data = o; p.next = p2; size++; } public Object removeFirst() { Node p = head; if (p.next != null) { Node p2 = head.next; p.next = p.next.next; size--; return p2.data; } return null; } public Object removeLast() { Node p = head; if (p.next != null) { while (p.next.next != null) { p = p.next; } Node p2 = new Node(); p2 = p.next; p.next = null; size--; return p2.data; } return null; } /* * public Iterator iterator(){ return null; } */ private static class Node { Object data; Node next; } }