首先我们需要知道线性表的链式结构的设计思路:
先构造结点类,然后基于结点,设计链式结构类。
Java源码中结点类Node.Java:
package com.study.test;
publicclass Node {
Object data;
Node next;
Node() {
this(null,null);
}
Node(Object data) {
this(data,null);
}
Node(Object data, Node next) {
this.data = data;
this.next = next;
}
public Object getData() {
returndata;
}
publicvoid setData(Object data) {
this.data = data;
}
public Node getNext() {
returnnext;
}
publicvoid setNext(Node next) {
this.next = next;
}
}
很简单,但难度在于指针变量是结点类的对象,这与我们所学的理念有所不同。尤其是在将结点的运用在单链表类的描述时,不清楚next何时是指针,何时是下一个借点。
事实上,虽然java在内存层次存在指针, java根据在栈内存里的固定内存指向堆内存的随机内存,但语法上不存在指针的概念。因此java在栈内存中
声明next,来标记所在的堆空间。