节点结构
class Node {
int val;
Node next;
public int getVal ( ) {
return val;
}
public void setVal ( int val) {
this . val = val;
}
public Node getNext ( ) {
return next;
}
public void setNext ( Node next) {
this . next = next;
}
public Node ( int val) {
this . val = val;
}
public Node ( ) { }
}
链表
public class LinkUtil {
private Node data = null;
private int size = 0 ;
public void add ( int val) {
Node node = new Node ( val) ;
if ( data == null ) {
data = node;
size++ ;
return ;
}
Node front = data;
while ( front. next != null) {
front = front. next;
}
front. next = node;
size++ ;
}
public void delete ( int index) {
if ( index >= size) {
throw new RuntimeException ( "超出长度" ) ;
}
if ( size <= 1 ) {
data = null;
size = 0 ;
return ;
}
Node pre = new Node ( ) ;
pre. next = data;
Node now = data;
Node head = pre;
int i = 0 ;
while ( now != null) {
if ( i == index) {
pre. next = now. next;
break ;
}
pre = now;
now = now. next;
i++ ;
}
data = head. next;
}
public int get ( int index) {
if ( index >= size) {
throw new RuntimeException ( "超出长度" ) ;
}
Node front = data;
int i = 0 ;
while ( front != null) {
if ( i == index) {
return front. val;
}
front = front. next;
i++ ;
}
throw new RuntimeException ( "异常" ) ;
}
public Node getLink ( ) {
return data;
}
public int size ( ) {
return size;
}
}
队列
public class QueueUtil {
private Node data;
private int size = 0 ;
private Node head;
private Node front;
public void push ( int val) {
Node node = new Node ( val) ;
if ( data == null ) {
data = node;
size++ ;
head= data;
front = data;
return ;
}
front. next = node;
front = node;
size++ ;
}
public Integer pop ( ) {
if ( head == null) {
return null;
}
int val = head. val;
head = head. next;
size-- ;
return val;
}
public int size ( ) {
return size;
}
}