(学习java)链队列的实现

来源:互联网 发布:云计算系统 编辑:程序博客网 时间:2024/06/06 00:29
//定义链队列public class MyQueue {public static void main(String[] args) {QueueNode q = new QueueNode();q.pushQueue(true);q.pushQueue(1);q.pushQueue("你好");//q.clearQueue();q.listQueue();}//定义结点类public static class Node{private Object data;private Node next;public Node(){}public Node(Object data){this.data = data;}}//定义链队列public static class QueueNode{//定义头指针private Node front;//定义尾指针private Node rear;//队列长度private int size;//构造方法public QueueNode() {//定义一个头结点this.front = new Node();rear = front;}//判断当前队列是否为空public boolean isEmpty(){return rear == front;}//入队   元素从队尾进入public void pushQueue(Object data){if(isEmpty()){Node node = new Node(data);front.next = node;rear = node;size++;}else{Node node = new Node(data);rear.next = node;rear = node;size++;}}//出队  元素从队头出来public Object popQueue(){if(isEmpty()){System.out.println("队列为空,不能出队!");return null;}else if(size == 1){Object data = rear.data;front.next = null;rear = front;size--;return data;}else{Object data = front.next.data;front.next = front.next.next;size--;return data;}}//遍历队列public void listQueue(){if(size==0){System.out.println("空队列");System.out.println("队列的长度" + size);}else{Node temp = front;while(temp.next!=rear){temp = temp.next;System.out.print(temp.data + "<-");}temp = temp.next;System.out.println(temp.data);System.out.println("队列的长度" + size);}}//清空队列public void clearQueue(){while(!isEmpty()){popQueue();}}}}

原创粉丝点击