c++队列元素含指针怎么释放

2025-01-31 01:20:30
推荐回答(1个)
回答1:

#pragma once //用数组实现的循环队列//SeqQueue.h#include "stdafx.h"#include "Windows.h"#include "stdlib.h"#include "iostream.h"templateclass SeqQueue{private: T *queue; int front,rear,MaxSize;public: SeqQueue(int sz=30);//构造函数 SeqQueue(SeqQueue& sq);//拷贝构造函数 SeqQueue(int arraysz,T *a,int sz=30);//构造函数 void MakeEmpty();//清空队列 bool IsEmpty();//队列是否为空 int GetLength();//获得长度 int GetMaxSize();//获得队列大小 T &GetFront();//获得队首元素 bool EnQueue(T &x);//入队 bool OutQueue(T &x);//出对 void show(); ~SeqQueue();//析构函数}; templateSeqQueue::SeqQueue(int sz){ queue=new T[sz]; MaxSize=sz; front=rear=0;} templateSeqQueue::SeqQueue(SeqQueue& sq){ queue=new T[sq.MaxSize]; MaxSize=sq.MaxSize; front=rear=0; for(int i=0;iSeqQueue::SeqQueue(int arraysz,T *a,int sz){ if(arraysz>sz) { cerr<<"The Array is too Large"; exit(1); } queue=new T[sz]; MaxSize=sz; front=rear=0; for(int i=0;ivoid SeqQueue::MakeEmpty(){ front=rear=0;} templatebool SeqQueue::IsEmpty(){ return front==rear;} templateint SeqQueue::GetLength(){ return ((rear-front)+MaxSize)%MaxSize;} templateint SeqQueue::GetMaxSize(){ return MaxSize;}