链表的实现

Posted ServerSocket

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链表的实现相关的知识,希望对你有一定的参考价值。

public class LinkList {
 public Node head;
 public Node current;
 
 //方法:向链表中添加数据
 public void add(int data) {
  //判断链表为空的时候
  if (head == null) {//如果头结点为空,说明这个链表还没有创建,那就把新的结点赋给头结点
  head = new Node(data);
  current = head;
  } else {
  //创建新的结点,放在当前节点的后面(把新的结点合链表进行关联)
  current.next = new Node(data);
  //把链表的当前索引向后移动一位
  current = current.next; //此步操作完成之后,current结点指向新添加的那个结点
  }
 }
 
 //方法:遍历链表(打印输出链表。方法的参数表示从节点node开始进行遍历
 public void print(Node node) {
  if (node == null) {
  return;
  }
 
 current = node;
  while (current != null) {
  System.out.println(current.data);
  current = current.next;
  }
 } 
 
 class Node {
 //注:此处的两个成员变量权限不能为private,因为private的权限是仅对本类访问。
  int data; //数据域
  Node next;//指针域
 
  public Node(int data) {
  this.data = data;
 }
 }
 
 
 public static void main(String[] args) {
 LinkList list = new LinkList();
 //向LinkList中添加数据
  for (int i = 0; i < 10; i++) {
  list.add(i);
  }
 
  list.print(list.head);// 从head节点开始遍历输出
 }
 
 }

使用内部类的最大好处是可以和外部类进行私有操作的互相访问。

注:内部类访问的特点是:内部类可以直接访问外部类的成员,包括私有;外部类要访问内部类的成员,必须先创建对象。

为了方便添加和遍历的操作,在LinkList类中添加一个成员变量current,用来表示当前节点的索引(03行)。

这里面的遍历链表的方法(20行)中,参数node表示从node节点开始遍历,不一定要从head节点遍历。

转:http://www.jb51.net/article/71885.htm

以上是关于链表的实现的主要内容,如果未能解决你的问题,请参考以下文章

链表的java实现(单向双向链表,单向链表的反转)

链表的java实现(单向双向链表,单向链表的反转)

数据结构《二》链表的实现

代码模板实现双向链表的去重拼接合并排序

Java中双向链表的代码实现

链表的反转思路及代码实现