实例讲解-单向列表的实现(1)

实例要求

在数据结构中,经常看到一个基本概念,对于一个链表的实现基本都是基于引用数据类型的操作。

如果要想设计一个链表,则肯定要设计一个链表的节点类。在此类中必须有一个属性可以保存下一个节点的引用地址。

根据此概念,设计一个节点类。以String为数据保存内容。

class Node{        // 定义节点类
    private String data ;    // 保存节点内容
    private Node next ;        // 表示保存下一个节点
    public Node(String data){        // 通过构造设置节点内容
        this.data = data ;    // 设置内容
    }
    public void setNext(Node next){
        this.next = next ;        // 设置下一个节点
    }
    public Node getNext(){    // 取得下一个节点
        return this.next ;
    }
    public String getData(){
        return this.data ;    // 取得节点的内容
    }
};
public class LinkDemo01{
    public static void main(String args[]){
        Node root = new Node("火车头") ;  // 定义根节点
        Node n1 = new Node("车厢-A") ;    // 定义第一个车厢(第一个节点)
        Node n2 = new Node("车厢-B") ;    // 定义第二个车厢(第二个节点)
        Node n3 = new Node("车厢-C") ;    // 定义第三个车厢(第三个节点)
        root.setNext(n1) ;            // 设置火车头的下一个节点是第一个车厢A
        n1.setNext(n2) ;            // 设置第一个车厢的下一个节点是第二个车厢
        n2.setNext(n3) ;            // 设置第二个车厢的下一个节点是第三个车厢
        printNode(root) ;            // 从头开始输出,因为printNode()方法用static修饰了,所以才可以直接调用,
    }
    public static void printNode(Node node){    // 输出节点
        System.out.print(node.getData() + "\t") ;    // 输出节点的内容
        if(node.getNext()!=null){        // 判断此节点是否存在下一个节点
            printNode(node.getNext()) ;    // 向下继续输出
        }
    }
};

总结:

本程序中,所有的关系都是手工添加的,如果要想程序变得有意义,则需要为其加入一个操作的封装。

posted @ 2016-05-23 15:46  美好的明天  阅读(617)  评论(0编辑  收藏  举报