对不起java链表加上泛型真的可以为所欲为

for(int i=0;i<5;i++){

String a=sc.nextLine();

l.add(a);

}

l.display();

//插入节点

System.out.println(“\n\n请输入要插在那个节点值的后面:”);

String s=sc.nextLine();

System.out.println(“请输入要插入的值:”);

String cha=sc.nextLine();

l.insert(s,cha);

l.display();

//删除节点

System.out.println(“\n\n出入要删除的节点值:”);

String shan=sc.nextLine();

l.delete(shan);

l.display();

//查找节点

System.out.print(“\n\n输入想查找的节点值:”);

String zhao=sc.nextLine();

l.find(zhao);

}

}

运行结果展示:

加上泛型后:

package test1;

public class node {

Object value;

node next;

public node(Object value){

this.value=value;

}

}

package test1;

import java.util.Scanner;

public class linked {

static node head;//设置一个头结点

static node ans;//设置一个可变节点

public void add(Object value){

node num=new node(value);

if(head==null){

head=num;

return;

}

ans=head;

while(ans.next!=null){

ans=ans.next;

}

ans.next=num;

}

public void display(){

ans=head;

System.out.print(“结果为:”);

while (ans.next!=null){

System.out.print(ans.value+" ");

ans=ans.next;

}

System.out.print(ans.value);

}

public void insert(Object value1,Object value2){

node n=new node(value2);

ans=head;

while(ans.value.equals(value1)!=true){ //这里可以加上一个,kmp或者是快速查找

ans=ans.next;

}

n.next=ans.next;

ans.next=n;

}

public void delete(Object value){

node tmp=null;

ans=head;

if(head.value.equals(value)==true)

head=ans.next;

else {

while (ans.value.equals(value)!=true){ //这里可以加上一个,kmp或者是快速查找

tmp=ans;

ans=ans.next;

}

tmp.next=ans.next;

}

}

public void find(Object value){

ans=head;

int count=1;

while(ans.value.equals(value)!=true){

count++;

ans=ans.next;

}

System.out.println(“发现“”+ans.value+“”节点在第:”+count+“个”);

}

public static void main(String []args){

linked l=new linked();

Scanner sc=new Scanner(System.in);

for(int i=0;i<3;i++){

Object a=sc.nextLine();

l.add(a);

}

l.display();

//插入节点

System.out.println(“\n\n请输入要插在那个节点值的后面:”);

Object s=sc.nextLine();

System.out.println(“请输入要插入的值:”);

Object cha=sc.nextLine();

l.insert(s,cha);

l.display();

//删除节点

System.out.println(“\n\n出入要删除的节点值:”);

Object shan=sc.nextLine();

l.delete(shan);

l.display();

最后

手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友

image.png

ha);

l.display();

//删除节点

System.out.println(“\n\n出入要删除的节点值:”);

Object shan=sc.nextLine();

l.delete(shan);

l.display();

最后

手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友

[外链图片转存中…(img-uNtWnHDZ-1714197095517)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 28
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值