以下为用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();
}
}
新闻热点
疑难解答