先写一个顶层的接口MyList,有一些集合常用的方法
public interface MyList<T> {
boolean isEmpty();//判断线性表是否为空
int length();//获得List的元素个数
T get(int i);//取得第i个位置上的数据元素,返回数据元素的值
boolean set(int i,T x);//将第i个位置上的数据元素设置为值x
void add(int i,T x);//位置i及其后的元素依次后移一个位置,然后将x插入到第i个位置
T remove(int i);//删除第i个位置上的数据元素,位置i+1及其后的元素依次前移一个位置
int indexOf(T x);//获取数据元素x在表中的下标位置
}
创建一个linkedList类实现上述接口,并实现相关方法,以下是基本结构
public class LinkedList<T> implements Iterable<T>, MyList<T> {
//链表长度
public int length;
//头结点
public Node head;
//节点
class Node {
T data;
Node next=null;
public Node(T d) {
data =d;
//next = null;
}
}
}
实现一些基础方法
/**
* 无参构造
*/
public LinkedList() {
this.length&