节点结构链表队列
节点结构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;
}
}



