单链表(java)

核心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;
   }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值