Java实现单向链表操作
- 定义结点
public class Node {
Object data;
Node next;
}
- 定义链表
public class Linked {
Node head;
Node tail;
public Linked() {
head = new Node();
head.next = null;
tail = head;
}
public void add(Object val) {
Node p = new Node();
p.data = val;
p.next = null;
tail.next = p;
tail = p;
}
public void insert(int pos, Object val) {
Node q = new Node();
q.data = val;
Node p;
int i;
if(pos==1) {
q.next = head.next;
head.next = q;
}else {
for(p=head.next, i=1; i<pos-1; p=p.next, i++) {
}
q.next = p.next;
p.next = q;
}
}
public void delect(int pos) {
Node p;
Node q;
int i;
if(pos==1) {
q = head.next;
head .next = q.next;
q = null;
}else {
for(p=head.next, i=1; i<pos-1; p=p.next, i++) {
}
q = p.next;
p.next = q.next;
q = null;
}
}
public void traverse() {
Node p = head.next;
while(p!=null) {
System.out.print(p.data+"\t");
p = p.next;
}
System.out.println();
}
}
- 测试程序
public class Test {
public static void main(String[] args) {
Linked link = new Linked();
link.add(1);
link.add(2);
link.add(3);
link.add(4);
link.add(5);
link.add(6);
link.traverse();
link.insert(6, 99);
link.traverse();
link.delect(1);
link.traverse();
}
}
- 测试结果:
