数据结构之队列(java语言版)

队列(Queue):在逻辑上是一种线性存储结构。它有以下几个特点:
1、队列中数据是按照"先进先出(FIFO, First-In-First-Out)"方式进出队列的。
2、 队列只允许在"队首"进行删除操作,而在"队尾"进行插入操作。
队列通常包括的两种操作:入队列 和 出队列。

队列的种类也很多,单向队列,双向队列,循环队列。

底层可以由数组(顺序表),链表实现。

数组队列

public class Queue {//队列
	Array list;
	public Queue() {
		this.list=new Array(20);
	}
	
	public void enQueue(Object e) {
        list.add(e);
        System.out.println("入队");
	}
	
	public Object deQueue() {
        System.out.println("出队");
		return list.removeHead();
	}
	
	public void display() {
		list.display();
	}
}


测试

      	Queue queue=new Queue();

        queue.enQueue("ok");
        queue.enQueue("well");
        queue.enQueue("good");
        queue.enQueue("nice");

        queue.display();

        queue.deQueue();
        queue.deQueue();
        queue.display();

结果如下:

add success
入队
add success
入队
add success
入队
add success
入队
display:
 ok well good nice
 display  over...
出队
出队
display:
 good nice
 display  over...

链表队列

public class LinkQueue{
    SingleLinkList list;
    public LinkQueue(){
        list=new SingleLinkList();
    }

    public void enQueue(Object e) {
        list.add(e);
        System.out.println("入队");
	}
	
	public Object deQueue() {
        Object e=list.get(1);
        list.remove(1);
        System.out.println("出队");
		return e;
	}
	
	public void display() {
		list.display();
    }
    
    public int getSize(){
        return list.getSize();
    }
}

测试

		LinkQueue queue2=new LinkQueue();

        queue2.enQueue("ok");
        queue2.enQueue("well");
        queue2.enQueue("good");
        queue2.enQueue("nice");

        queue2.display();

        queue2.deQueue();
        queue2.deQueue();
        queue2.display();

结果如下:

入队
入队
入队
入队
开始遍历数据:
  ok  well  good  nice
遍历结束
出队
出队
开始遍历数据:
  good  nice
遍历结束
posted @ 2024-04-11 11:43  cgl_dong  阅读(2)  评论(0编辑  收藏  举报