练习——LinkedList

来源:互联网 发布:C语言迭代法求立方根 编辑:程序博客网 时间:2024/06/05 20:51
package Practice;import java.util.Iterator;public class MyLinkedList implements Iterable{    Value head;    int currentSize;    public MyLinkedList()    {        head=new Value(null);        currentSize=0;    }    public int getSize()    {        return currentSize;    }    public void add(Object o)    {        Value p=head;        while(p.next != null)            p=p.next;        p.next = new Value(o);        currentSize++;    }    public Object get(int ind)    {        if(ind >= currentSize)            return null;        else        {            Value p =head;            for(int i=0;i<ind;i++)            {                p=p.next;            }            return p.next.o;        }    }    public Object remove(int ind)    {        if(ind >= currentSize)            return null;        else        {            Value p =head;            for(int i=0;i<ind;i++)            {                p=p.next;            }            Object ret=p.next.o;            p.next=p.next.next;            currentSize--;            return ret;        }    }    class MyIterator implements Iterator    {        Value p;        public MyIterator(Value head)        {            this.p=head;        }        public boolean hasNext() {            // TODO Auto-generated method stub            if(p.next==null)                return false;            else                return true;        }        public Object next() {            Object ret=p.next.o;            p=p.next;            return ret;        }    }    public Iterator iterator() {        MyIterator it=new MyIterator(head);        return it;    }}class Value{    public Object o;    public Value next;    public Value(Object o)    {        this.o=o;        next=null;    }}
0 0
原创粉丝点击