- 首页 > it技术 > >
package linkList;
import java.util.Iterator;
public class LinkList implements Iterable { //记录头节点
private Node head;
//记录链表的长度
private int N;
//节点类
private class Node{
//存储数据
T item;
//下一个节点
Node next;
public Node(T item,Node next){
this.item=item;
this.next=next;
}
}
public LinkList(){
//初始化头节点
this.head=new Node(null,null);
//初始化元素个数
this.N=0;
}
//清空链表
public void clear(){
head.next=null;
this.N=0;
}
//获取链表长度
public int length(){
return N;
}
//判断链表是否为空
public boolean isEmpty(){
return N==0;
}
//获取指定位置处的元素
public T get(int i){
//通过循环,从头节点开始往后找,依次找i次就可以找到对应元素
Node n=head.next;
//第一个元素的位置
//遍历i次
for(int index=0;
index iterator() {
// TODO Auto-generated method stub
return new LIterator();
}
private class LIterator implements Iterator{
/*
* (non-Javadoc)
* @see java.util.Iterator#hasNext()
* 实现链表遍历
*/
private Node n;
publicLIterator() {
// TODO Auto-generated constructor stub
this.n=head;
}@Override
public boolean hasNext() {
// TODO Auto-generated method stubreturn n.next!=null;
}@Override
public Object next() {
// TODO Auto-generated method stub
n=n.next;
return n.item;
} }
}
推荐阅读