package com.coding.basic;
public class LinkList implements List{
private LinkNode head;
// TODO Auto-generated method stub
private int size;
public LinkList()
{
this.head = null;
this.size = 0;
}
public void add(Object o) {
// TODO Auto-generated method stub
LinkNode currPtr = this.head;
if(this.head == null)
{
this.head = new LinkNode(o, this.head ,null);
}
while(currPtr != null)
{
currPtr = currPtr.getNext();
}
currPtr.setNext(new LinkNode(o, currPtr, null));
size++;
}
public void add(int index, Object o) {
// TODO Auto-generated method stub
LinkNode currPtr = this.head;
if(index < 0 || index > size)
throw new IndexOutOfBoundsException("�±�Խ��");
int i = 0;
if(index == 0)
{
LinkNode node = new LinkNode(o,currPtr,currPtr.getPrv());
currPtr.getNext().setPrv(node);
currPtr = node;
}
while(i < index)
{
currPtr = currPtr.getNext();
i++;
}
LinkNode node = new LinkNode(o,currPtr.getPrv(),currPtr);
currPtr.getPrv().setNext(node);
currPtr.setPrv(node);
size++;
}
public Object get(int index) {
if(index < 0 || index > size)
throw new IndexOutOfBoundsException("�±�Խ��");
int i = 0;
LinkNode currPtr = this.head;
while(i < index)
{
currPtr = currPtr.getNext();
i++;
}
return currPtr.getData();
}
public Object remove(int index) {
// TODO Auto-generated method stub
int i = 0;
LinkNode currPtr = this.head;
while(i < index)
{
currPtr = currPtr.getNext();
i++;
}
currPtr.getNext().setPrv(currPtr.getPrv());
currPtr.getPrv().setNext( currPtr.getNext());
size--;
return currPtr.getData();
}
public int size() {
// TODO Auto-generated method stub
return size;
}
}