数据结构之单链表(java实现)
单链表是一种查询满增删快的数据结构。本文实现了数据结构中单链表结构。实现了单链表中的添加、读取、插入、删除和打印常见操作。
代码:
结点类:
public class Node {//创建Node类,成员变量包含数据和next node;
public Object data;
public Node next = null;
public Node(Object data){
this.data = data;
}
}
链表类:
public class SingleLinkedList {
private int size = 0;
private Node head = null;
public void AddNode(Object data) {//添加
Node NewNode = new Node(data);
if (head == null) {
head = NewNode;
size++;
return;
}
Node temp = head;
while (temp.next != null) {
temp = temp.next;
}
temp.next = NewNode;
size++;
}
public Object Get(int index)throws Exception{//读取
if (index<1||index>size){
throw new Exception("error!");
}
int i = 1;
Node CurNode = head;
while(index != i){
CurNode = CurNode.next;
i++;
}
return CurNode.data;
}
public void insert(int index,Object elem) throws Exception {//插入
if(index<1||index>size)
throw new Exception("error!");
if(index == 1){
Node NewNode = new Node(elem);
NewNode.next = head;
head = NewNode;
size++;
}
int i = 2;
Node PreNode = head;
Node CurNode = PreNode.next;
while(CurNode != null){
if(i == index){
Node NewNode = new Node(elem);
NewNode.next = CurNode;
PreNode.next = NewNode;
}
PreNode = PreNode.next;
CurNode = CurNode.next;
i++;
}
}
public void Delet(int index)throws Exception{//删除
if(index<1||index>size)
throw new Exception("error!");
Node CurNode = head;
Node BehindNode = CurNode.next;
int i = 1;
while(CurNode != null){
if(index == i){
CurNode.next=BehindNode.next ;
size--;
}
CurNode= CurNode.next ;
BehindNode = BehindNode.next ;
i++;
}
}
public void display(){//打印
Node CuNode = head;
System.out.println("CurrentSize: "+size);
while(CuNode != null){
System.out.print(CuNode.data+" ");
CuNode = CuNode.next;
}
System.out.println();
}
}
测试类:
**public class test {
public static void main(String[] args) throws Exception{
SingleLinkedList LinkedList = new SingleLinkedList();
/*********
执行操作
*********/
}
}**