刚学习了JAVA泛型,现在写两个基本的用泛型实现的简单算法练练手
首先实现一个简单的单链表,包括头尾节点,基本操作如创建单链表,插入,删除都能实现:
//java 泛型实现单链表的基本操作
public class LinkedList3<T> {
private Node<T> tail;
private Node<T> head;
public LinkedList3(){
head = tail=null;
}
public static class Node<T>{
T data;
Node<T> next;
Node(T data,Node<T> next){//当为中间节点的时候用此构造方法
this.data=data;
this.next=next;
}
Node(T data){ //当为头结点或尾节点的时候 使用此构造方法
this.data=data;
this.next=null;
}
}
public void addHead(T point){ //为空链表增加头结点
head=new Node<T>(point);
if(tail==null){
tail=head;
}
}
public void addTail(T point){ //为链表增加尾节点
tail=new Node<T>(point);
head.next=tail;
}
public boolean insert(T point){ //插入一个中间节点 使用头插法
Node<T> preNext=head.next;
Node<T> newNode=new Node(point,preNext);
if(head.next!=null){