数据结构之——基于数组的队列的C++模板实现

template<typename T>
Class Myqueue
{
public:
    Myqueue(int max=50):capa(max),head(0),tail(0),data(nullptr)
    {
        data=new T[capa]
    }
    void enqueue(T &x);//入队
    T front();//队首
    void dequeue();//出队
    int counts();//元素个数
    bool empty();//判空
    bool full();//判满
    ~Myqueue(delete[]data);
private:
    int head;
    int tail;
    int count;
    T* data;
    int capa;
}
template<typename T>
void Myqueue<T>::enqueue(T &x)
{
    if(!full())
    {
        arr[tail]=x;
        count++;
    }
    if(tail==capa)
        tail=0;
    else
        tail++;
}
template<typename T>
bool Myqueue<T>::empty()
{
    return count==0;
}
bool Myqueue<T>::full()
{
    return count==capa;
}
template<typename T>
T MyStack<T>::front()
{
    if(!empty())
        return arr[head];
}
template<typename T>
void MyStack<T>::pop()
{
    if(!empty())
    {
        if(head==capa)
           head=0;
        else
           head++;
        --count;
    }
}
template<typename T>
int MyStack<T>::counts()
{
    return count;
}
时间: 2024-10-19 16:51:24

数据结构之——基于数组的队列的C++模板实现的相关文章

数据结构之——基于链表的队列的C++模板实现

//节点的结构 template<typename T> struct node { T data; node<T>* next; node():next(nullptr){}; node(T t):data(t),next(nullptr){}; } //模板类构造队列类 template<typename T> Class Myqueue { public: Myqueue():head(nullptr),tail(nullptr),count(0) { head=

数据结构 - 基于数组的队列

队列Queue *队列也是一种线性结构 *相比于数组,队列对应的操作是数组的子集 *只能从一端(队尾)添加元素,从另一端(队首)取出元素 *队列是一种先进先出的数据结构(先到先得 First In First Out) 基于数组的队列实现的源码如下: package queue; public interface Queue<E> {        public void enqueue(E e);        public E dequeue();        public E getF

基于数组实现Java 自定义Queue队列及应用

Java 自定义队列Queue: 队列的抽象数据类型就是一个容器,其中的对象排成一个序列,我们只能访问和取出排在最前端( Front)的对象,只能在队列的尾部( Rear)插入新对象.正是按照这一规则,才能保证最先被插入的对象首先被删除( FIFO).java本身是有自带Queue类包,为了达到学习目的已经更好深入了解Queue队列,自己动手自建java Queue类是个很好的学习开始: 基于数组的实现 ? 顺序数组 借助一个定长数组 Q 来存放对象,即可简单地实现队列.那么,为了符合 FIFO

教你如何使用Java手写一个基于数组实现的队列

一.概述 队列,又称为伫列(queue),是先进先出(FIFO, First-In-First-Out)的线性表.在具体应用中通常用链表或者数组来实现.队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作.队列的操作方式和堆栈类似,唯一的区别在于队列只允许新数据在后端进行添加. 在Java中队列又可以分为两个大类,一种是阻塞队列和非阻塞队列. 1.没有实现阻塞接口: 1)实现java.util.Queue的LinkList, 2)实现java.util.Abstra

数据结构与算法—稀疏数组和队列

目录 稀疏数组和队列 1.稀疏数组 1.1 解决方法 1.2 代码实现 2. 队列 2.1 数组模拟队列 2.2 数组模拟环形队列 稀疏数组和队列 1.稀疏数组 所谓稀疏数组就是当数组中大部分的内容值都未被使用(或都为零),在数组中仅有少部分的空间使用.因此造成内存空间的浪费,为了节省内存空间,并且不影响数组中原有的内容值,我们可以使用稀疏数组去压缩数据.OK,如果你不明白,那我们来看一个例子. ? 在一个五子棋中,有存盘和续上盘的功能 分析问题:因为该二维数组的很多默认值是 0,因此记录了很多

数据结构 - 基于链表的队列

基于链表的队列 当我们基于链表实现队列时,需要从一端加元素,另一端取出元素,就需要引入一个新的变量tail指向链表的尾部,此时,向尾部进行添加操作时间复杂度会变为O(1),然而删除操作还是需要从head向后遍历,所以此时选择链表尾为队尾,链表头为队首. 基于链表的实现的源码如下: package queue; import linkedList.LinkedList; public class LinkedListQueue<E> implements Queue<E> {    

java 数据结构 用数组实现队列

代码内容 1 package com.structure; 2 3 import java.util.Scanner; 4 5 /** 6 * @auther::9527 7 * @Description: 数组模拟队列 8 * @program: jstl2 9 * @create: 2019-10-05 08:58 10 */ 11 public class ArrayQueueDemo { 12 public static void main(String[] args) { 13 Sca

数据结构--队列实现(顺序队列和链队列)与C++模板

数据结构--队列实现(顺序队列和链队列)与C++模板 一.顺序队列 队列的顺序存储结构称为顺序队列,顺序队列实际上是运算受限的顺序表. ①和顺序表一样,顺序队列用一个向量空间来存放当前队列中的元素. ②由于队列的队头和队尾的位置是变化的,设置两个指针front和rear分别指示队头元素和队尾元素在向量空间中的位置,它们的初值在队列初始化时均应置为0. 注意: ①当头尾指针相等时,队列为空. ②在非空队列里,队头指针始终指向队头元素,尾指针始终指向队尾元素的下一位置.(所以以下循环顺序队列中当队尾

Java算法入门-数组&amp;链表&amp;队列

算法就是解决问题的步骤,在一般的项目中可能用不上,但是一旦涉及到高并发,高性能时,就不得不考虑算法的优劣. 设计原则和特性 设计原则:正确性,可读性,健壮性,高效率和低存储 特性:有穷性,确定性,可行性,有输入,有输出. 算法题入门体验 如何判断是一个数是2的整数次幂?常规方法使用循环,但是在学习了二进制的基础知识后,发现可以使用模运算来实现. 1 import java.util.Scanner; 2 3 public class base { 4 5 public static void m