`

栈队列

 
阅读更多
import java.util.Stack;

import org.apache.log4j.Logger;

import com.ctis.ta.util.PropertiesUtils;

/**
 * java 栈队列
 * @author 
 *
 */
public class ActiveQueue {
	public  static Logger log = Logger.getLogger(ActiveQueue.class);
	 private  static Stack _queue;
	 private  static ActiveQueue activeQueue;
	 //private final static int QUEUE_SIZE = 100;
	 private final static int QUEUE_SIZE = PropertiesUtils.getQueueSizeNum();
	 
	 private ActiveQueue() {
       
     }
	 public static ActiveQueue getInstance(){
		 if(null==_queue){
			 _queue = new Stack();
			 activeQueue = new ActiveQueue();
		 }
		 return activeQueue;
	 }
	 
     public synchronized int enqueue() {
        while(_queue.size() >= QUEUE_SIZE) {
            try {
                 wait(2000);
            }catch (InterruptedException e) {
                 log.error(this, e);
            }   
        }
        _queue.push(new Object());
        notifyAll();
        log.info("enqueue-->"+_queue.size());
        log.info("QUEUE_SIZE-->"+QUEUE_SIZE);
        return 1;
    }
    public synchronized void dequeue() {
        while(_queue.empty()) {
            try {
                wait();
            }catch (InterruptedException e) {
                log.error(this, e);
            }
        }
        _queue.pop();
        notifyAll();
        log.info("dequeue-->"+_queue.size());
    } 
}
分享到:
评论

相关推荐

    堆栈与队列实验(含C代码和实验报告:括号匹配完成,利用栈队列逆置,栈的操作)

    在“利用栈队列逆置”这个实验环节,可能使用到了栈和队列的组合。通常,队列不能直接实现逆置操作,因为FIFO特性使得无法直接改变元素的顺序。但是,可以通过一个辅助栈来实现队列的逆置:将队列中的所有元素依次出...

    C语言-数据结构-栈队列实现

    本主题关注的是如何使用C语言来实现数据结构中的栈和队列,这是两种基础但非常重要的抽象数据类型(ADT)。 栈(Stack)是具有后进先出(LIFO)特性的数据结构。它类似于一个堆叠的盘子,最新的元素被放在顶部,...

    栈队列串数组

    栈队列串数组

    数栈队列PPT学习教案.pptx

    数栈队列PPT学习教案 本PPT学习教案主要介绍了数栈队列的概念和操作,包括栈和队列的定义、基本操作、特点和应用。 一、栈的定义和操作 栈是一种受限的线性表,限定在表尾进行插入和删除操作。栈的基本操作包括...

    C语言实现栈与队列

    在IT领域,数据结构是编程基础中的重要组成部分,而栈(Stack)和队列(Queue)是最基础且广泛使用的两种数据结构。本项目是用C语言实现的栈和队列,提供了可加载和使用的源代码,这对于理解这两种数据结构的工作...

    第一讲:线性表和栈队列.ppt

    1、5个男生3个女生排成一排,3个女生要排在一起,有多少种不同的排法?

    电信设备-信令网关的协议栈队列的维护方法、装置及系统.zip

    本压缩包文件"电信设备-信令网关的协议栈队列的维护方法、装置及系统.zip"包含了一份关于信令网关协议栈队列维护的重要文档——"信令网关的协议栈队列的维护方法、装置及系统.pdf",该文档深入探讨了如何有效地管理...

    数据结构线性表、栈队列的思维导图.zip

    通过这个"数据结构线性表、栈队列的思维导图.zip"文件,你可以深入理解这三个基本数据结构,以及它们在实际问题中的应用。思维导图的视觉化呈现能帮助你更好地掌握这些知识,并且在解决实际编程问题时能迅速回忆和...

    Queue_栈队列_pop_

    任务描述栈和队列都提供 Push/Pop 两种操作,其中 Push:加入一个元素。Pop:弹出一个元素。给出一个线性结构的进出顺序,判定这个结构是栈还是队列。(40’) 输入描述第一行输入一个整数s,代表有s组测试数据。第一...

    超级数组和链表及栈队列

    超级数组和链表及栈队列

    考研 数据结构 第二章 栈队列和数组

    考研必备 数据结构 第二章 栈队列和数组 请使用IE浏览器观看! 欢迎下载!

    数据结构之 串 栈 队列

    本压缩包包含关于三种基本数据结构——串(字符串)、栈和队列的实现代码,分别是1.c、2.c、3.c、顺序栈.cpp、循环队列.cpp、链队列.cpp,以及一个名为"串.rar"的子文件,可能包含了字符串处理的相关资料,还有...

    栈 队列 类定义

    在计算机科学中,栈(Stack)和队列(Queue)是两种非常基础且重要的数据结构。它们被广泛应用于各种算法和程序设计中,为解决许多实际问题提供了有效的数据管理手段。下面将详细介绍栈和队列的基本概念、实现方式...

    数据结构与算法:栈队列的题库

    ### 数据结构与算法:栈与队列题库解析 #### 一、判断题解析 1. **正确**。栈的特点就是后进先出(LIFO, Last In First Out),因此所有的插入与删除操作均发生在栈顶。 2. **正确**。队列是一种先进先出(FIFO, ...

    c数据结构 栈队列模拟停车场

    这是我用C语言写的停车场算法,用队列来模拟等待车队,用栈来模拟停车场地。可以正常出车,也可以非正常出车,希望对大家有帮助。

    线性表栈队列的所有源文件

    线性表、栈和队列是计算机科学中最基础的数据结构之一,它们在各种算法和程序设计中都有着广泛的应用。这个压缩包提供了这些数据结构的线性存储和链式存储结构的源文件,对于理解它们的工作原理和实际操作非常有帮助...

    停车场管理系统(栈 队列实现)

    ### 停车场管理系统(栈与队列实现) #### 背景介绍 本案例设计了一种基于栈和队列的数据结构实现的停车场管理系统。系统通过栈来模拟停车场内部车辆的停放情况,并利用队列来模拟停车场外等待进入的车辆情况。...

    栈和队列的基本操作实现及其应用实验报告

    ### 栈和队列的基本操作实现及其应用实验报告 #### 实验目的 1. **熟练掌握栈和队列的基本操作**:在数组和链表两种存储结构上实现栈和队列的基本操作。 2. **应用栈和队列解决实际问题**:通过具体的编程练习,...

    数据结构栈队列ppt.ppt

    数据结构栈队列ppt.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~

    顺序表 栈 队列的操作

    根据给定文件的信息,本文将深入探讨顺序表、栈与队列的基本操作,并结合具体的代码示例进行解析。 ### 一、顺序表 #### 1. 定义 顺序表是一种线性表,其特点是通过连续的存储空间来存放数据元素。在C语言中,可以...

Global site tag (gtag.js) - Google Analytics