java实现数据结构单链表示例(java单链表)
本文导语: 代码如下:/** * 单向链表 * */public class NodeList { private static class Node { // 节点类 E data; // 节点上的数据 Node next; // 指向下一个节点 Node(E e) { this.data = e; this.next = null; } } private Node head; // 链表的头节点 private ...
/**
* 单向链表
*
*/
public class NodeList {
private static class Node { // 节点类
E data; // 节点上的数据
Node next; // 指向下一个节点
Node(E e) {
this.data = e;
this.next = null;
}
}
private Node head; // 链表的头节点
private Node last; // 链表的尾节点
private Node other = null;
private int length = 0; // 节点数量
/**
* 无参构造方法
*/
public NodeList() {
// 默认节点为空
this.head = new Node(null);
}
/**
* 初始化时创建一个节点
*
* @param data
* 数据
*/
public NodeList(E data) {
this.head = new Node(data);
this.last = head;
length++;
}
/**
* 添加一个节点(尾插法)
*
* @param data
* 数据
*/
public void add(E data) {
if (isEmpty()) {
head = new Node(data);
last = head;
length++;
} else {
Node newNode = new Node(data);
last.next = newNode;
last = newNode;
}
}
/**
* 获得索引处的数据(索引输入错误抛出越界异常)
* @param index 索引
* @return 索引处数据
*/
public E get(int index){
if(indexlength){
throw new IndexOutOfBoundsException("索引越界:"+index);
}
other = head;
for(int i=0;i