线性表的链式存储结构之单链表结点类的实现_Java

时间: 2011-08-13 / 分类: 瞎扯谈 / 浏览次数: / 0个评论 发表评论

在前几次的博文中我提到了——线性表的顺序存储结构之顺序表类的实现,这几次我们准备实现线性表的链式存储结构,不过之前需要一些预备知识,那就是本文了。

由于单链表有一个个结点链接而成,以下定义单链表及地点类。

在C/C++语言中,采用指针类型存储地址来实现链式存储结构。Java语言不支持指针类型,提供引用方式保存包括地址在内的结构化信息。引用是比指针更健壮、更安全的链接方式,它不仅实现了指针的所有功能,而且避免了因指针使用不当产生的不安全性。因此,采用Java语言的引用类型可以很好地实现链式存储结构。

单链表结点类Node声明如下:

package dataStructure.linearList;

public class Node<E>
{
    public E Data;
    public Node<E> Next;

    public Node(E data,Node<E> next)
    {
        this.Data = data;
        this.Next = next;
    }

    public Node(E Data)
    {
        this(Data,null);
    }

    public Node()
    {
        this(null,null);
    }
}

Node<E>类有两个成员变量,data表示结点的数据域,保存数据元素本身,数据类型是E;next表示结点的地址域,保存后继结点的地址。Node类中成员变量next的数据类型是Node类自己,Node类是“自引用的类”。所谓自引用的类(self-referential calss),是指一个类声明包含一个引用当前类的对象的成员变量。

建立并链接结点的语句如下:

import dataStructure.linearList.Node;

public class MainForm
{
    public static void main(String args[])
    {
    	Node<String> CC =new Node<String>("C");
    	Node<String> BB =new Node<String>("B",CC);
    	Node<String> AA =new Node<String>("A",BB);
    	
        System.out.println(AA.Data);
        System.out.println(AA.Next.Data);
        System.out.println(AA.Next.Next.Data);
    }
}

单链表的头指针head也是一个结点引用,声明如下:

Node<E> head = null;

当head ==null时,表示空单链表。

在下一篇博文中我将和大家讨论有关单链表类的实现问题。敬请期待。

您阅读此文共耗时

暂无评论

  1. chenhong90
    2011/08/13 21:48:00

    学习了。。

  2. AngelHacker
    2011/08/13 21:49:00

    [reply]chenhong90[/reply]
    谢谢来访小站,欢迎回访,一同技术讨论。

  3. xiami4428
    2011/08/15 08:38:00

    学习学习

  4. AngelHacker
    2011/08/15 08:56:00

    [reply]xiami4428[/reply]
    谢谢来访小站,欢迎回访,一同技术讨论。

发表评论

你必须 登录后 才能留言!