单链表的数据结构相对构建比较简单
package DataStructure;
class Node{
public int data;
public Node next;
Node(int data){
this.data=data;
}
public void display(){
System.out.print(" "+data);
}
}
public class LinkList {
Node head;
int length;
public static void main(String[] args){
LinkList linkList = new LinkList();
linkList.addFirstNode(1);
linkList.addFirstNode(12);
linkList.addFirstNode(13);
linkList.add(14,1);
linkList.deleteIndex(2);
System.out.println("链表长度为:"+linkList.ListLength());
System.out.print("打印聊表内容:");
linkList.displayAllNodes();
}
//新建一张链表
public void LinkList(){
head = null;
length =0;
}
//插入头结点
public void addFirstNode(int data){
Node node = new Node(data);
node.next = head;
head = node;
length++;
}
public void add(int data, int n){
Node node = new Node(data);
Node p = head;
Node q = head;
int i = 0;
if(n>length||n<0){
System.out.println("插入的位置有误");
return;
}
while(i!=n){
q = p;
p = p.next;
i++;
}
node.next = p;
q.next = node;
length++;
}
public Node delete(int data){
if(head==null){
System.out.println("Linklist is null");
}
Node p = head;
Node q = head;
while(p.data!=data){
if(q==null){
System.out.println("该表中无此元素");
return null;
}
q = p;
p=p.next;
}
q.next = p.next;
return p;
}
public Node deleteIndex(int index){
if(head==null){
System.out.println("Linklist is null");
}
Node p = head;
Node q = head;
int i=0;
while(i!=index){
q = p;
p=p.next;
i++;
}
q.next = p.next;
return p;
}
public int ListLength(){
return length;
}
public void displayAllNodes() {
Node p = head;
while (p != null) {
p.display();
p = p.next;
}
System.out.println();
}
}
程序运行结果: