class Link{
class Node{
private String data;
private Node next;
public Node(String data){
this.data = data;
}
}
public void add(Node newNode){
if(this.next == null){
this.next = newNode;
}else{
this.next.add(newNode);
}
}
public void print(){
System.out.print(this.data + "\t");
if(this.next != null){
this.next.print();
}
}
public boolean search(String data){
if(data.equals(this.data)){
return 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.print();
}
}
public boolean contains(String name){
return this.root.search(name);
}
public void deleteNode(String data){
if(this.contains(data)){
if(this.root.data.equals(data)){
this.root = this.root.next;
}else{
this.root.next.delete(root,data);
}
}
}
}
博客给出了一个链表类Link的代码实现,包含节点类Node。实现了添加节点、打印节点、查找节点和删除节点等操作。通过递归的方式处理链表的各种操作,为链表的基本功能实现提供了示例。
1075

被折叠的 条评论
为什么被折叠?



