算法学习10-猫狗队列

算法学习10-猫狗队列

猫狗队列

问题描述

宠物、狗和猫的类如下:
<pet.h>

#ifndef _PET_H
#define _PET_H

#include <string>

using namespace std;

class Pet
{
   
public:
    Pet(string type)
    {
   
        this->type = type;
    }
    string getPetType()
    {
   
        return type;
    }
private:
    string type;
};

class Dog:public Pet
{
   
public:
    Dog():Pet("dog"){
   }
};

class Cat:public Pet
{
   
public:
    Cat():Pet("cat"){
   }
};
#endif

实现一种猫狗队列的结构,要求如下:

  • 用户可以调用 push 的方法,将 cat 类或者 dog 类的实例放入队列中;
  • 用户可以调用 popAll 的方法,将队列中所有的实例按照进队列的先后顺序依次弹出;
  • 用户可以调用 popDog 的方法,将队列中的 dog 类实例按照进队列的先后顺序依次弹出;
  • 用户可以调用 popCat 的方法,将队列中的 cat 类实例按照进队列的先后顺序依次弹出;
  • 用户可以调用 isEmpty 的方法,检查队列中是否还有 dog 或者 cat 类的实例;
  • 用户可以调用 isDogEmpty 的方法,检查队列中是否还有 dog 类的实例;
  • 用户可以调用 isCatEmpty 的方法,检查队列中是否还有 cat 类的实例。

代码实现

1.带时间戳的宠物声明及实现代码<petstamp.h>
#ifndef _PETSTAMP_H
#define _PETSTAMP_H

#include "pet.h"

class PetStamp
{
   
public:
    PetStamp(Pet p,long count)
    :pet(p)
    {
   
        this->count=count;
    }
    Pet getPet()
    {
   
        return pet;
    }
    long getCount()
    {
   
        return count;
    }
    string getPetType()
    {
   
        return pet.getPetType(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值