循环队列的数组表示函数的实现
来源:互联网 发布:微博营销软件 编辑:程序博客网 时间:2024/05/13 10:13
#include<assert.h>
#include<iostream.h>
#include<stdlib.h>
#include"Queue.h"
template<class T>
class SeqQueue
...{
public:
SeqQueue(int sz=10);
~SeqQueue()...{delete[]elements;}
bool EnQueue(const T& x);
bool DeQueue(T& x);
bool getFront(T& x);
void makeEmpty()...{front=rear=0;}
bool IsEmpty()const...{return(front==rear)?true:false;}
bool IsFull()const...{return((rear+1)%maxSize==front)?true:false;}
friend ostream& operator<<(ostream& os,SeqQueue<T>& Q); //输出重载
protected:
int rear,front; //队尾指针与对头指针
T *elements;
int maxSize; //队列最大可容纳个数
};
template<class T>
SeqQueue<T>::SeqQueue(int sz):front(0),rear(0),maxSize(sz)
...{
elements=new T[maxSize];
assert(elements!=NULL);
};
template<class T>
bool SeqQueue<T>::EnQueue(const T& x)
...{
if(IsFull()==true) return false; //队列满,插入失败
elements[rear]=x; //按照队尾指针指示插入位置
rear=(rear+1)%maxSize; //队尾指针+1
return true;
};
template<class T>
bool SeqQueue<T>::DeQueue(T& x)
...{
if(IsEmpty()==true) return false;
x=elements[front];
front=(front+1)%maxSize;
return true;
}
template<class T>
bool SeqQueue<T>::getFront(T& x)
...{
if(IsEmpty()==true) return false;
x=elements[front];
return true;
};
template<class T>
ostream& operator<<(ostream& os,SeqQueue<T>& Q)
...{
os<<"front="<<Q.front<<",rear="<<Q.rear<<endl;
for(int i=Q.front;i!=Q.rear;i=(i+1)%maxSize)
os<<i<<":"<<Q.elements[i]<<endl;
return os;
}
#include<iostream.h>
#include<stdlib.h>
#include"Queue.h"
template<class T>
class SeqQueue
...{
public:
SeqQueue(int sz=10);
~SeqQueue()...{delete[]elements;}
bool EnQueue(const T& x);
bool DeQueue(T& x);
bool getFront(T& x);
void makeEmpty()...{front=rear=0;}
bool IsEmpty()const...{return(front==rear)?true:false;}
bool IsFull()const...{return((rear+1)%maxSize==front)?true:false;}
friend ostream& operator<<(ostream& os,SeqQueue<T>& Q); //输出重载
protected:
int rear,front; //队尾指针与对头指针
T *elements;
int maxSize; //队列最大可容纳个数
};
template<class T>
SeqQueue<T>::SeqQueue(int sz):front(0),rear(0),maxSize(sz)
...{
elements=new T[maxSize];
assert(elements!=NULL);
};
template<class T>
bool SeqQueue<T>::EnQueue(const T& x)
...{
if(IsFull()==true) return false; //队列满,插入失败
elements[rear]=x; //按照队尾指针指示插入位置
rear=(rear+1)%maxSize; //队尾指针+1
return true;
};
template<class T>
bool SeqQueue<T>::DeQueue(T& x)
...{
if(IsEmpty()==true) return false;
x=elements[front];
front=(front+1)%maxSize;
return true;
}
template<class T>
bool SeqQueue<T>::getFront(T& x)
...{
if(IsEmpty()==true) return false;
x=elements[front];
return true;
};
template<class T>
ostream& operator<<(ostream& os,SeqQueue<T>& Q)
...{
os<<"front="<<Q.front<<",rear="<<Q.rear<<endl;
for(int i=Q.front;i!=Q.rear;i=(i+1)%maxSize)
os<<i<<":"<<Q.elements[i]<<endl;
return os;
}
- 循环队列的数组表示函数的实现
- 循环队列的数组表示函数的实现
- 循环队列的数组表示函数的实现
- 循环队列的数组表示函数的实现
- 循环队列的顺序表示和实现
- 循环队列的表示和实现(数据结构)
- 循环队列的顺序表示和实现
- 循环队列的表示与实现
- 循环队列的表示和实现
- 循环队列的数组实现
- 循环队列的数组实现!!
- 循环数组队列的实现
- 队列的数组实现(循环队列)
- 循环队列——队列的顺序表示和实现
- 循环队列——队列的顺序表示和实现
- 循环队列 队列的顺序表示和实现
- 循环队列-队列的顺序表示和实现
- 队列的顺序表示及实现,循环队列
- Windows 2008 Roles and Features
- 解析#pragma指令
- 循环队列的数组表示函数的实现
- 关于typedef一句话的解释
- log080905
- 循环队列的数组表示函数的实现
- iPhone girl原是论坛站长自我炒作
- 稻香村起子饼
- IDC建议软件商分离技术平台与产品平台
- 如何使用 PDI 和 Oracle CDC 来实现Oracle 数据库向其他数据库的数据同步
- 戴尔周四将推mini"上网本" 售价低于$400
- 指针和数组名的区别 char *str 和 char str[]的不同之处
- 怎样给sql数据库的一个表格添加一列自动加一的列。设置 SQL 参数的值
- Cakephp 关联对象,关于关联表hasOne,hasMany等