package program;
class Link{
class Node{
private String data;
private Node next; //下一个节点的引用
public Node(String data){
this.data=data;
}
public void addNode(Node newNode){
if(this.next ==null){
this.next= newNode; //最后一个节点指向新节点
}else{
this.next.addNode(newNode); //下一个节点继续找
}
}
public void printNode()
{
System.out.println(this.data); //打印当前节点
if(this.next!=null)
{ this.next.printNode();} //下一节点继续找,一次打印
}
public boolean searchNode(String data){
if(this.next.data==data){
return true;} //查询当前节点
if(this.next!=null){
return this.next.searchNode(data); //下一节点继续查询
}
else{
return false;
}
}
public void delectNode(Node previous,String data){
if(this.data==data){
previous.next=this.next; //删除当前节点
}
if(this.next!=null){
this.next.delectNode(this, data); //下一节点查询,删除
}
}
}
private Node head;
public void add(String data){
Node newNode = new Node(data);
if(this.head==null){
this.head=newNode;
}else{
this.head.addNode(newNode);
}
}
public void print(){
if(this.head!=null){
this.head.printNode();
}
}
public boolean search(String data){
if(head.data==data)
{ return true;}
else{
return this.head.searchNode(data);}
}
public void delect(String data){
if(this.head.data==data){
if(this.head!=null){
head=head.next;
}else{
head=null;
}
}
else{
head.next.delectNode(this.head,data);
}
}
public void delete(String searchNode) {
}
}
public class LinkTest {
public static void main(String []args){
Link l1=new Link();
l1.add("a");
l1.add("b");
l1.add("c");
l1.delect("bb");
l1.print();
String searchNode = "bb";
System.out.println("查找:"+searchNode);
String result=l1.search(searchNode)?"存在":"不存在";
System.out.println("结果:"+result);
System.out.println("删除:"+searchNode);
l1.delete(searchNode);
l1.print();
}
}
任务5:请使用内部类实现单项链表的增加,删除,遍历打印,查找(对以下代码进行补充)
10
分
任务尚未发布或者你没有权限查看任务内容。
任务讨论