链队(LinkdeQueue)
public class LinkQueue {
private class Node {
//数据
int data;
//指针(下一个结点)
Node next;
//无参构造函数,用于初始化
public Node(){
}
//有参构造函数,用于初始化
public Node(int data){
this.data=data;
}
}
//头节点
private Node front;
//尾节点
private Node rear;
//队列大小
private int size;
//无参构造函数
public LinkQueue(){
size = 0;
front = null;
rear = null;
}
//入队
public void inQueue(int data){
Node node = new Node(data);
//空队列
if(front == null){
front = node;
rear = front;
}
//队列不为空
else{
//后移
rear.next = node;
rear = node;
}
size++;
System.out.println("入队成功");
}
//出队
public void outQueue(){
if(front == null){
System.out.println("空队列");
return;
}
else{
int data = front.data;
Node node = front;
front = node.next;
node = null;
size--;
System.out.println("出队成功");
}
}
//清空队列
public void clear(){
Node node = front;
while(node != null){
front = node.next;
node = null;
node = front;
size--;
}
front = null;
rear = null;
System.out.println("清队成功");
}
//输出
public void show(){
StringBuilder sb = new StringBuilder();
if(front == null) {
System.out.println("空队列");
return;
}
else{
Node node = front;
while(node.next != null){
sb.append(node.data+" ");
node = node.next;
}
sb.append(node.data);
}
System.out.println(sb.toString());
return;
}
public static void main(String[] args) {
LinkQueue queue =new LinkQueue();
queue.show();
queue.inQueue(5);
queue.inQueue(4);
queue.inQueue(3);
queue.inQueue(2);
queue.inQueue(1);
queue.show();
queue.outQueue();
queue.outQueue();
queue.show();
queue.clear();
queue.show();
}
}
Last updated