package com.oracle.www.mylinkked;
public class Node<E> {
Node<E> prev;
E e;
Node<E> next;
public Node(Node prev, E e, Node next) {
super();
this.prev = prev;
this.e = e;
this.next = next;
}
}
package com.oracle.www.mylinkked;
public class MyLinkind<E> {
private Node<E> first;
private Node<E> last;
private int size;
public boolean add(E e){
Node<E> newNode=new Node<E>(last, e, null);
if(first==null){
first=newNode;
last=newNode;
}else{
Node<E> l=last;
l.next=newNode;
last=newNode;
}
size++;
return true;
}
public E get(int index){
Node<E> f=first;
for(int i=0;i<index;i++){
f=f.next;
}
return f.e;
}
public int size(){
return this.size;
}
public E remove(int index){
Node<E> f=first;
for(int i=0;i<index;i++){
f=f.next;
}
f.prev.next=f.next;
f.next.prev=f.prev;
this.size--;
return f.e;
}
}
package com.oracle.www.mylinkked;
public class Test {
public static void main(String[] args) {
MyLinkind<Integer> link=new MyLinkind<Integer>();
link.add(1);
link.add(2);
link.add(3);
link.add(4);
link.add(5);
link.add(6);
System.out.println("链表长度:"+link.size());
System.out.print("链表元素:");
for(int i=0;i<link.size();i++){
System.out.print(link.get(i)+"\t");
}
System.out.println();
System.out.println(link.remove(2)+"成功被删除");
System.out.print("删除后链表元素:");
for(int i=0;i<link.size();i++){
System.out.print(link.get(i)+"\t");
}
}
}