package cn;
public class LinkList <T>{
private int length;
private Node head;
private class Node{
Node next;
T value;
}//初始化链表
LinkList(){
head = new Node();
length=1;
}
public void InsertNode(Node n, T t ,int i){
int j=0;
Node e=head;
if(i<1)
System.out.println("不能在头节点前插入。");
else{
while(e != null && j<i-1) {
e=e.next;
j++;
}
if(e==null) {
System.out.println("i值大于表长,在最后添加一个节点");
e=n;
e.value=t;
}
n.next=e.next;
e.next=n;
n.value=t;
}
length++;
}
public void DeleteNode(int i) {//按位序删除
Node e= head;
int j=0;
if(i>length && i<1)
System.out.println("删除位置超出表长或在头节点之前");
else
while(e!=null && j<=i) {
e=e.next;
j++;
}
Node p=e.next;
e.next=p.next;
System.out.println("删除位置超出表长或在头节点之前");
}
public String DeletNode(Node n) {//删除某一节点
String delend=null;
if(n==null)
delend="删除成功";
else {
Node p=n.next;
n.next=p.next;
n.value=p.value;
delend="删除失败";
}
return delend;
}
public String getElemi(int i) {//返回第i个元素
Node e = head;
int j=0;
String end= null;
if(i<1)
end="链表中不存在第"+i+"个元素";
else
{
while(e!=null && j< i) {
e=e.next;
j++;
}
if(e==null)
end="链表第"+i+"个元素为空";
else
end=""+e.value+"";
}
return end;
}
}