[链表]关于链表的一些常识-总结

① 最近被链表搞的有点蒙,道理懂,但是在动手敲关于链表的代码的时候,遇到了难题。终于让我搜到了这篇文章,让我突然更懂链表了(达到了能写代码的地步)。

    https://m.jb51.net/article/170155.htm?tdsourcetag=s_pcqq_aiomsg

②首先,在java里,链表的每个结点用Node类来表示,结点定义如下:

 1 package com.linkedlist;
 2 
 3 public class Node {
 4   private int data;// 结点数据
 5   private Node next;// 下一个结点
 6 
 7   public Node(int data) {
 8     this.data = data;
 9   }
10 
11   public int getData() {
12     return data;
13   }
14 
15   public void setData(int data) {
16     this.data = data;
17   } 
18 
19   public Node getNext() {
20     return next;
21   }
22 
23   public void setNext(Node next) {
24     this.next = next;
25   }
26 }

③然后,定义一个链表操作类,里面包含常用的操作:

    

package com.linkedlist;

import java.util.Hashtable;

public class LinkedListOperator {
  private Node head = null;// 头结点。java里允许这样写:一开始让头结点为空

  // 在链表的末尾增加一个结点
  private void addNode(int data) {    //传入的参数是data
    Node newNode = new Node(data);  //传入了data,该data就被拿到②中4、8、16行进行运用
    if (head == null) {
      head = newNode;
      return;
    }
    Node temp = head; //temp是head的复制体,此后无论temp怎么变都无关head的事情
    while (temp.getNext() != null) {   //无限循环,直到temp自己已经是尾结点
      temp = temp.getNext();  //把temp的下一个结点,赋给temp自己
    }
    temp.setNext(newNode);   //经过上述循环,已经保证temp是原链表的尾结点了,
  }                                       //接上句,让newNode成为temp的下一个结点
                    //上述就是addNode函数

④  未完待续,我先睡个午觉

猜你喜欢

转载自www.cnblogs.com/zf007/p/11571823.html