首页 > 代码库 > Java 实现一个链表
Java 实现一个链表
public class MyList {
static class Node {// 节点类
Object data;
Node next;
public Node(Object data) {// 构造方法,为data赋值
this.data = http://www.mamicode.com/data;"hljs-keyword">this.next = null;
}
}
Node head;
public MyList() {
head = null;// 链表的构造方法
}
public void clear() {// 清除链表
head = null;
}
public void bianli()// 遍历
{
Node p = head;
while (p != null) {
System.out.print(p.data + " ");
p = p.next;
}
System.out.println();
}
public boolean isEmpty()// 推断是否为空
{
return head == null;
}
public int size() {// 节点个数
Node p = head;
int sum = 0;
while (p != null) {
sum++;
p = p.next;
}
return sum;
}
// 在指定位置插入元素。下标从0開始
public void insert(Object d, int pos) {
if (pos < 0 || pos > size()) {
throw new RuntimeException("下标错误");
}
Node newNode = new Node(d);
if (pos == 0) {
newNode.next = head;
head = newNode;
} else if (pos >= size() - 1) {
get(size() - 1).next = newNode;
} else {
newNode.next = get(pos);
get(pos - 1).next = newNode;
}
}
public Node get(int pos) {
if (pos < 0 || pos > size()) {
throw new RuntimeException("下标错误");
}
if (pos == 0)
return head;
Node p = head;
for (int i = 0; i < pos; i++)
p = p.next;
return p;
}
public static void main(String[] args) {
MyList list = new MyList();
list.insert(10, 0);
list.insert(20, 1);
list.insert(30, 0);
list.insert(40, 1);
System.out.println(list.size());
list.bianli();
System.out.println(list.isEmpty());
System.out.println(list.get(2).data);
list.clear();
System.out.println(list.isEmpty());
}
}
Java 实现一个链表
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。