环形队列——用户对用户自定义数据类型的相关操作

#ifndef CUSTOMER_H
#define CUSTOMER_H
#include
  
  
   
   
using namespace std;
class Customer
{
public:
	Customer(string name="",int age=0);
	void printInfo()const;
private:
	string m_strName;
	int m_iAge;
};
#endif;#include
   
   
    
    
#include"Customer.h"
using namespace std;
Customer::Customer(string name,int age)
{
	m_strName=name;
	m_iAge=age;
}

void Customer::printInfo()const
{
	cout<<"姓名:"<
    
    
     
     <
     
     
      
      
#include "MyQueue.h"
#include
      
      
        using namespace std; /** * 创建数组 */ MyQueue::MyQueue(int queueCapacity) { m_iQueueCapacity=queueCapacity; m_pQueue=new Customer[m_iQueueCapacity]; CleanQueue(); } MyQueue::~MyQueue() { delete[] m_pQueue; m_pQueue=NULL; } void MyQueue::CleanQueue() { m_iHead=0; m_iTail=0; m_iQueueLen=0; } /** * 判空队列 */ bool MyQueue::QueueEmpty() const { if(m_iQueueLen==0) { return true; } else { return false; } } /** * 判满队列 **/ bool MyQueue::QueueFull() const { if(m_iQueueLen==m_iQueueCapacity) { return true; } else { return false; } } /** * 队列长度 **/ int MyQueue::QueueLength() const { return m_iQueueLen; } /** * 入队 **/ bool MyQueue::EnQueue(Customer element) { if(m_iQueueLen==m_iQueueCapacity){ return false; } else { m_pQueue[m_iTail]=element; m_iTail++; m_iTail=m_iTail%m_iQueueCapacity; m_iQueueLen++; return true; } } /** * 首元素出队 **/ bool MyQueue::DeQueue(Customer &element) { if(m_iQueueLen==0){ return false; } else { element=m_pQueue[m_iHead]; m_iHead++; m_iHead=m_iHead%m_iQueueCapacity; m_iQueueLen--; return true; } } /** * 遍历队列 **/ void MyQueue::QueueTraverse() { for(int i=m_iHead;i 
       
         #include 
        
          #include"MyQueue.h" #include"Customer.h" using namespace std; int main(void) { MyQueue *p=new MyQueue(4); Customer c1("zhangsan",20); Customer c2("lisi",30); Customer c3("wangwu",24); p->EnQueue(c1); p->EnQueue(c2); p->EnQueue(c3); p->QueueTraverse(); Customer c4("",0); p->DeQueue(c4); c4.printInfo(); cout<<"---------------------------"< 
         
           QueueTraverse(); /*MyQueue *p=new MyQueue(4); p->EnQueue(10); p->EnQueue(12); p->EnQueue(16); p->EnQueue(18); p->QueueTraverse(); int e=0; p->DeQueue(e); cout< 
          
            DeQueue(e); cout< 
           
             QueueTraverse(); p->CleanQueue(); p->QueueTraverse(); p->EnQueue(20); p->EnQueue(30); p->QueueTraverse(); delete p; p=NULL;*/ system("pause"); return 0; } 
            
           
          
         
        
      
     
     
    
    
   
   
  
  

以上内容来源于慕课网。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值