SList.java
package com.test;
import java.util.Iterator;
@SuppressWarnings({"rawtypes","unchecked","unused"})
public class SList<T>{
public Node<T> top=null;//最顶端元素
public Node<T> now=null;//最后一个元素
SList[] s=null;
public void add(T t){
if(top==null){
top=new Node<T>(t);
now=top;
}
else if(top!=null){
now.next=new Node<T>(t);
now=now.next;
}
}
public SListIterator iterator(){
return new Iterator(this);
}
@Override
public String toString() {
return "SList [top=" + top + ", now=" + now + "]";
}
//链表元素
private class Node<U>{
U node;
Node<U> next;
public Node(){
this.node=null;
this.next=null;
}
public Node(U u){
this.node=u;
}
public boolean end(){
return this.node==null && this.next==null;
}
public String toString(){
return node.toString();
}
}
//list迭代器
private class Iterator<A> implements SListIterator{
private SList<A> node=null;
private A a=null;
public Iterator(SList<A> node){
node.now=node.top;
this.node=node;
}
public boolean hasNext() {
return node.now!=null;
}
public A next() {
if(!hasNext())
return null;
a=node.now.node;
node.now=node.now.next;
return a;
}
}
}
SListIterator.java
package com.test;
import java.util.Iterator;
public interface SListIterator<T> extends Iterator<T>{
}