首页 > 编程 > Java > 正文

(Java笔记学习1)用Java语言描述链表

2019-11-08 19:26:11
字体:
来源:转载
供稿:网友

以下为用java语言描述链表的代码:

Class Link{

class Node{                                        //建立内部类

PRivate String data;//数据内容

private Node next;//next节点

public Node(String data){

this.data=data;

}

public void add(Node newNode){//添加节点

if(this.next==null){

this.next=newNode;//如果next节点为null,则将新节点存放于next节点中

}else{

this.next.add(newNode);//进行递归

}

}

public boolean search(String data){//查找节点

if(data.equals(this.data)){

return true;//找到节点,返回true

}else{

if(this.next!=null){

return this.next.search(data);

}else{

return false;

}

}

}

public void delete(Node previous,String data){

if(data.equals(this.data)){//首先得知道是否有该数据

previous.next=this.next;//删除该节点

}else{

if(this.next!=null){

this.next.delete(this,data);//继续查找删除

}

}

}

}; 

private Node root;//链表的根节点

public void addNode(String data){//添加节点

Node newNode=new Node(data);

if(this.root==null){//判断是否存在根节点

this.root=newNode;//将新节点设置为根节点

}else{

this.root.add(newNode);

}

}

public void printNode(){//输出数据

if(this.root!=null){

this.root.printData();

}

}

public boolean contains(String name){//判断数据是否存在

return this.root.search(name);

}

public void deleteNode(String data){//节点删除

if(this.contains(data)){//判断是否存在该数据

if(this.root.data.equals){

this.root=this.root.next;//将根节点往后移,直接删除根节点

}else{

this.root.next.delete(root,data);

}

}

}

}

public class LinkDemo{

public static void main(String args[]){

Link l=new Link();

l.addNode("A");//添加节点

l.addNode("B");l.addNode("C");l.addNode("D");l.addNode("E");

System.out.println("=====增加节点成功=====");

l.printNode();//输出节点数据

//查找节点

System.out.printn(l.contains("A"));//返回true则存在该节点

//删除节点

l.deleteNode("C");

l.printNode();

}

}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表