package LinkedList;
public class LinkedList有头<E> {
private class Node{//用户不需要访问节点的内部结构,故用private
public E e;
public Node next;//区别于C,Java直接创建一个新的Node作为next
//Node构造函数
public Node(E e,Node next) {
this.e=e;
this.next=next;
}
public Node(E e) {
this(e,null);
}
public Node() {
this(null,null);
}
@Override
public String toString() {
return e.toString();
}
}
//构造参数head和size
private Node head;
private int size;
public LinkedList有头() {
head=null;//刚创建时,head后未接结点,故指向空
size=0;
}
//获得链表中元素个数
public int getSize() {
return size;
}
//返回链表是否为空
public boolean isEmpty() {
return size==0;
}
//在链表头添加新元素e
public void addFirst(E e) {
head.next=new Node(e,head);
size++;
}
//在链表中间添加元素
public void add(int index,E e) {
if(index<0||index>size) {
throw new IllegalArgumentException("Add failed.Index illegal.");
}
if(index==0)
addFirst(e);//addFirst不符合add的规律
Node prev=head;
for(int i=0;i<index-1;i++) {
prev=prev.next;
}
prev.next=new Node(e,prev.next);
size++;
}
//链表末尾添加新元素
public void addLast(E e) {
add(size,e);
}
}
编写链表(有头)的注意事项
最新推荐文章于 2022-07-13 17:51:51 发布