Queue1


 1 #include<iostream>
2 using namespace std;
3 //#define maxSize 20
4 template <class T>
5 class Queue
6 {
7 private :
8 // T data[maxSize];
9 int maxSize;
10 T *data;
11 T Front;
12 T rear;
13 int Count;
14 public:
15 Queue()
16 {
17 Front = 0;
18 rear = 0;
19 Count = 0;
20 cout<<"input the queue maxsize"<<endl;
21 cin>>maxSize;
22 data = new T[maxSize];
23 }
24 void enQueue( T & x)
25 {
26 if(Count > 0 && Front == rear)
27 {
28 cout<<"Queue is full"<<endl;
29 }
30 data[rear] = x;
31 rear = (rear + 1) % maxSize;
32 Count++;
33 }
34 void outQueue()
35 {
36 if(Count == 0)
37 {
38 cout <<"Queue is empty"<<endl;
39 }
40 T tem = data[Front];
41 Front = (Front + 1 )% maxSize;
42 cout<<"out elem:"<<tem<<endl;
43 }
44 int isEmpty()
45 {
46 return Count == 0;
47 }
48 void makeEmpty()
49 {
50 Front = 0;
51 rear = 0;
52 Count = 0;
53 }
54 T readhead()
55 {
56 T tem = data[Front];
57 return tem;
58 }
59 void printQueue()
60 {
61 int j = Front;
62 for(int i = 0 ; i < Count ; i++ )
63 {
64 cout<<data[j]<<" ";
65 j = ( j + 1 )%maxSize;
66 }
67 }
68 int getlength()
69 {
70 return Count;
71 }
72 };
73 int main()
74 {
75 Queue <int> dusk;
76 int j;
77 cin>>j;
78 for(int i = 0 ; i < j ; i++ )
79 {
80 dusk.enQueue(i);
81 }
82 dusk.printQueue();
83
84 }

Queue1

时间: 2024-10-10 12:15:45

Queue1的相关文章

Spring rabbitMq 中 correlationId或CorrelationIdString 消费者获取为null的问题

问题 在用Spring boot 的 spring-boot-starter-amqp   快速启动 rabbitMq 是遇到了个坑 消费者端获取不到:correlationId或CorrelationIdString 问题产生的原因 correlationId 的在 spring rabbitmq 2.0 以后 byte方式会被放弃,所以 目前 代码中有些地方没有改过来,应该算一个BUG @SuppressWarnings("deprecation") public class De

jms入门

一.所需jar(maven) <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.14.3</version> </dependency> 二.创建生产者 import org.apache.activemq.ActiveMQConnectionFactory;

挑战程序系列

1.6二分法 1 题目:有n张纸片,随机取4张(可放回),如4张面值加起来可等于m,则输出yes,否则no.纸片的面值为k[1],k[2]-- 2 3 思路:使用4次循环寻找会导致超时,所以假设4张分别为a,b,c,d, 4 5 先计算二次循环a+b所有可能放入数组kk,然后将kk排序, 6 7 最后使用二次循环(m-c-d)与kk用二分法比较,,最后确定是否有这个值. 8 9 #include <stdio.h> 10 #include <algorithm> 11 using

Java复习——多线程与并发库

开启一个线程 实现一个线程的方式有两种:继承Thread类.实现Runnable接口.这两种方法都需要重写Run方法,具体的线程逻辑代码写在Run方法中.其实Thread类就实现了Runnable接口,但是并没有什么说法是使用哪种方式存在效率高低的问题,推荐使用实现Runnable接口的方式,因为更加面向对象,而且实现一个接口比继承一个类更灵活.我们可以使用匿名内部类的方式很方便的开启一个线程(使用Tread类的start方法开启一个线程): Thread : new Thread(){ pub

C++类模板的使用

面向对象: 设计和实现一个C++类模板,来提供一种采用数组来存储的.元素为任意类型的环形队.要求提供的操作:加入元素:提取元素:返回环形队允许存储的元素个数最大值:返回当前的有效元素个数. #include<iostream> #include<cstring> using namespace std; template<class Type> class Queue { private: int front; int rear; Type *item; int len

深入剖析java并发之阻塞队列LinkedBlockingQueue与ArrayBlockingQueue

关联文章: 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解Java类加载器(ClassLoader) 深入理解Java并发之synchronized实现原理 Java并发编程-无锁CAS与Unsafe类及其并发包Atomic 深入理解Java内存模型(JMM)及volatile关键字 剖析基于并发AQS的重入锁(ReetrantLock)及其Condition实现原理 剖析基于并发AQS的共

ActiveMQ简单入门

一.创建一个简单的Hello World案例 首先需要导入activemq-all-5.14.5.jar包,写生产端: package com.ietree.mq.helloworld; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.MessageProduc

携程日处理20亿数据,实时用户行为服务系统架构实践

携程实时用户行为服务作为基础服务,目前普遍应用在多个场景中,比如猜你喜欢(携程的推荐系统).动态广告.用户画像.浏览历史等等. 以猜你喜欢为例,猜你喜欢为应用内用户提供潜在选项,提高成交效率.旅行是一项综合性的需求,用户往往需要不止一个产品.作为一站式的旅游服务平台,跨业务线的推荐,特别是实时推荐,能实际满足用户的需求,因此在上游提供打通各业务线之间的用户行为数据有很大的必要性. 携程原有的实时用户行为系统存在一些问题,包括:1)数据覆盖不全:2)数据输出没有统一格式,对众多使用方提高了接入成本

使用RabbitMQ实现延迟任务

场景一:物联网系统经常会遇到向终端下发命令,如果命令一段时间没有应答,就需要设置成超时. 场景二:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单. 上述类似的需求是我们经常会遇见的问题.最常用的方法是定期轮训数据库,设置状态.在数据量小的时候并没有什么大的问题,但是数据量一大轮训数据库的方式就会变得特别耗资源.当面对千万级.上亿级数据量时,本身写入的IO就比较高,导致长时间查询或者根本就查不出来,更别说分库分表以后了.除此之外,还有优先级队列,基于优先级队列的JDK延迟队列,时间轮