[AppleScript] 纯文本查看 复制代码
package com.itheima.link;
/**
* 单列表
*
* @title SingleLink.java
* <p>
* description
* </p>
* <p>
* company: www.itheima.com
* </p>
* @author 三国的包子
* @version 1.0
*
*
*/
public class SingleLink {
// 结点对象
class Node {
Object data;// 数据
Node next;// 下一个节点的地址引用
// 构造函数 获取数据
public Node(Object data) {
this.data = data;
}
}
Node head;// 表示链表的头结点
}
[AppleScript] 纯文本查看 复制代码
/**
* 从尾部添加一个节点
*
* @param data
* 要添加的节点的数据
*/
public void add(Object data) {
// 1.构建一个节点对象
Node node = new Node(data);
if (head == null) {
// 2.判断链表中是否为空 如果为空 则新增的节点变成头节点
head = node;
} else {
// 3.如果链表不为空,则需要查询到尾部节点
Node rear = findRearNode();
// 4.向尾部节点添加一个节点
rear.next = node;// rear肯定不为空
}
}
/**
* 找到尾部节点
*
* @return
*/
private Node findRearNode() {
// 从头开始遍历
// 1.定义一个临时变量 让其等于头
Node temp = head;
while (temp != null) {// 如果不等于空继续遍历
if (temp.next == null) {// 如果接的next的属性为空说明 该节点为尾部节点
break;// 跳出循环
}
temp = temp.next;// 遍历下一个
}
return temp;
}
[AppleScript] 纯文本查看 复制代码
// 重写方法 打印数据
@Override
public String toString() {
StringBuffer stringBuffer = new StringBuffer("[");
// 遍历
Node temp = head;
while (temp != null) {
if (temp.next == null) {
stringBuffer.append(temp.data);
break;
} else {
stringBuffer.append(temp.data + ",");
}
temp = temp.next;
}
stringBuffer.append("]");
return stringBuffer.toString();
}