package djj;
public class LinkedList implements List {
//头节点
private Node head;
//尾节点
// private Node tail;
//当前游标节点
private Node curNode;
public int size=0;
public void add(Object o){
if(head==null){
head=new Node(o);
head.next=null;
}else{
curNode=head;
while(curNode.next!=null){
curNode=curNode.next;
}
curNode.next=new Node(o);
}
size++;
}
public void add(int index , Object o){
if(index>size||index<=0){
throw new RuntimeException("越界");
}else{
curNode=head;
for(int i=0;i<index;i++){
curNode=curNode.next;
}
Node newNode=new Node(o);
newNode.next=curNode.next;
curNode.next=newNode;
size++;
}
}
public Object get(int index){
if(index>size||index<=0){
throw new RuntimeException("越界");
}
Node temp=head;
for(int i=0;i<index;i++){
temp=temp.next;
}
return temp.data;
}
public Object remove(int index){
if(index>size||index<=0){
throw new RuntimeException("越界");
}
Node temp=head;
for(int i=0;i<index-1;i++){
temp=temp.next;
}
Node delNode=temp.next;
temp.next=delNode.next;
delNode.next=null;
size--;
return delNode.data;
}
public int size(){
return this.size;
}
public void addFirst(Object o){
add(1,o);
}
public void addLast(Object o){
add(size,o);
}
public Object removeFirst(){
return null;
}
public Object removeLast(){
return null;
}
public Iterator iterator(){
return null;
}
private static class Node{
Object data;
Node next;
public Node(Object o){
data=o;
next=null;
}
}
}