核心code:
//节点定义
class linknode{
public int data;
public linknode next;
//构造器
public linknode(int data) {
this.data = data;
}
}
//创建单链表操作类
class linklist{
private linknode head = new linknode(0);
//增加节点
public boolean Addlink(linknode node){
linknode temp = head;
while (true){
if(temp.next==null) break;
temp=temp.next;
}
temp.next=node;
return true;
}
//指定位置增加节点
public boolean Addlink(linknode node,int a){
if(a<0) return false;
int b = 0;
linknode temp = head;
while(b<a){
b++;
if(temp==null) return false;
temp=temp.next;
}
node.next = temp.next;
temp.next = node;
return true;
}
//按值删除节点
public boolean Reducedatalink(int a){
linknode temp = head;
while(true){
if(temp.next==null) return false;
if(temp.next.data == a) break;
temp = temp.next;
}
temp.next = temp.next.next;
return true;
}
//按位置删除节点
public boolean Reducelink(int a){
if(a<0) return false;
linknode temp = head;
int k = 0;
while(k < a){
if(temp.next==null) return false;
temp = temp.next;
k++;
}
temp.next = temp.next.next;
return true;
}
//修改节点
public boolean Reviselink(int a,int b){
if(a < 0) return false;
linknode temp = head;
int k = 0;
while(k < a){
if(temp.next==null) return false;
temp = temp.next;
k++;
}
temp.next.data = b;
return true;
}
//查找节点
public int Searchlink(int a){
if(a<0) throw new RuntimeException("位置不存在");
linknode temp = head;
int k = 0;
while(k < a){
if(temp.next==null) throw new RuntimeException("位置不存在");
temp = temp.next;
k++;
}
return temp.next.data;
}
}