码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构——队列

时间:2018-02-12 21:01:07      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:seq   dem   pack   his   span   class   链式   link   front   

队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。 
(1)允许删除的一端称为队头(Front)。 
(2)允许插入的一端称为队尾(Rear)。 
(3)当队列中没有元素时称为空队列。 
(4)队列亦称作先进先出(First In First Out)的线性表,简称为FIFO表。 
   在Java编程中,Queue的实现都是用LinkedList

顺序队列

package com.demo.quee;

public class SeqQuee {


    private int top;
    private int rear;
    private int capacity = 10;
    private int[] array;
    private int size;
    
    public SeqQuee(int capacity){
        top = rear = 0;
        array = new int[capacity];
    }
    
    public SeqQuee(){
        array = new int[this.capacity];
    }
    
    public int size(){
        return size;
    }
    
    public boolean isEmpty(){
        return this.top == -1;
    }
    
    public void push(int data){
        if(array.length == size){
            addCapacity(size*2);
        }
        array[++rear] = data;
        size++;
    }
    
    public int pop(){
        if(isEmpty()){
            return -1;
        }
        size--;
        array[top] = (Integer) null;
        return array[top--];
    }
    
    public void addCapacity(int capacity){
        if(capacity < size){
            return;
        }
        int[] old = array;
        array = new int[capacity];
        for(int i=0; i<size; i++){
            array[i] = old[i];
        }
    }

}

 

链式队列

package com.demo.quee;

import com.demo.node.Node;

public class LinkedQuee {


    private Node top;
    private Node rear;
    private int size;
    
    public LinkedQuee(){
        this.top = null;
    }
    
    public int size(){
        return this.size;
    }
    
    public void push(int data) throws Exception{
        if(this.top == null){
            this.top = new Node(data);
        }else{
            Node p = new Node(data,this.top);
            rear.next = p;
            rear = p;
        }
        size++;
    }
    
    public int pop(){
        Node p = top.next;
        int data = p.data;
        top.next = p.next;
        p = null;
        size--;
        return data;
    }

}

 

数据结构——队列

标签:seq   dem   pack   his   span   class   链式   link   front   

原文地址:https://www.cnblogs.com/zyxiaohuihui/p/8445411.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!