<pre name="code" class="cpp">书上252作业之:用模板设计一个通用的队列类,实现元素的入队,出队,获取队列元素个数
#include<iostream>
using namespace std;
template<class T1,class T2>
class shuju{
public:
T1 data1;T2 data2;
shuju<T1,T2> *next;
};
template<class T1,class T2>
class que{
public:
void insert(T1,T2);
void print();
void goout(int n);
que();
int size(){return len;}
private:
shuju<T1,T2> *first;
int len;
};
template<class T1,class T2>
que<T1,T2>::que(){
this->len=0;
}
template<class T1,class T2>
void que<T1,T2>::insert(T1 t1,T2 t2){
shuju<T1,T2> *p=new shuju<T1,T2>;
p->data1=t1;p->data2=t2;
if(len==0){
//cout<<"len==0"<<endl;
p->next=NULL;
first=p;
len++;
}
else{
p->next=first;
first=p;
len++;
}
}
template<class T1,class T2>
void que<T1,T2>::print(){
shuju<T1,T2> *temp=first;
if(len==0)
return;
else{
do{
cout<<temp->data1<<"\t"<<temp->data2<<endl;
temp=temp->next;
}while(temp!=NULL);
cout<<endl;
}
}
template<class T1,class T2>
void que<T1,T2>::goout(int n){
shuju<T1,T2> *p;
for(int i=0;i<n;i++){
p=first;
cout<<p->data1<<"\t"<<p->data2<<endl;
first=first->next;
len--;
delete p;
}
}
#include"2.h"
#include<string>
void main(){
que<int,double> que1;
que1.insert(3,1.2);
que1.insert(2,1.5);
que1.insert(1,1.7);
que1.print();
que1.goout(2);
cout<<que1.size()<<endl;;
que<int,string> que2;
que2.insert(3,"haha");
que2.insert(2,"xixi");
que2.insert(1,"ee");
que2.print();
cout<<que2.size()<<endl;
}