以单向链表为例:
添加元素方法
public void add(E e){ Node<E> node=new Node<E>(e); if(root==null){//第一个元素 root=node; trail=node; }else{//在尾节点后面添加元素 trail.setNext(node); trail=node; } size++; }
删除元素方法
public E remove(int index){ if(index<0||index>=size)//判断索引位置是否有元素 return null; Node<E> node=root; Node<E> rnode=null; for(int i=0;i<index-1;i++){ if(index==0){ rnode=root; root=root.getNext(); }else{ rnode=node.getNext(); Node<E> nnode=rnode.getNext(); node.setNext(nnode); } } size--; return (E)rnode.getObj(); }
插入元素方法
public void insert(int index,E e){ if(index<0||index>=size) return ; Node<E> node=root; Node<E> rnode=null; for(int i=0;i<index-1;i++){ if(index==0){ rnode=root; root=root.getNext(); }else{ rnode=node.getNext(); Node<E> nnode=rnode.getNext(); node.setNext(nnode); } } size++; }
获得指定索引位置元素方法
public E get(int index){ if(index<0||index>=size)//注意判断索引位置是否有元素 return null; Node<E> node=root; for(int i=0;i<index;i++){ node=node.getNext(); } return (E)node.getObj(); }