package com.sx.structures; public class MyLinkedList implements MyList{ private Node head; private int size = 0; public MyLinkedList() { head = new Node(); } @Override public void add(Object o) { Node node = createNode(o); Node pre = head; while(pre.next!=null){ pre = pre.next; } pre.next = node; size++; } @Override public void add(int index, Object o) { if(index < 0){ System.out.println("����Խ��");return; } Node node = createNode(o); Node pointer = head; while(index>0){ pointer = pointer.next; index--; } node.next = pointer.next; pointer.next = node; size++; } @Override public Object get(int index) { Node pointer = head; while(index>=0){ pointer = pointer.next; index--; } return pointer.data; } @Override public Object remove(int index) { Object data = null; Node pre = head; while(index>0){ pre = pre.next; index--; } data = pre.next.data; pre.next = pre.next.next; size--; return data; } @Override public int size() { return size; } public void addFirst(Object o){ add(0, o); } public void addLast(Object o){ // Node node = createNode(o); // Node p = head; // while(p.next!=null) // p = p.next; // p.next = node; // size++; add(o); } public Object removeFirst(){ return remove(0); } public Object removeLast(){ Object data = null; Node re = head; Node pre = head; while(re.next!=null){ re = re.next; pre = re; } data = re.data; re=null; pre.next = null; size--; return data; } private Node createNode(Object o){ Node node = new Node(); node.data=o; return node; } private static class Node{ Object data = null; Node next = null; } }