看了看模板的东西,感觉没想象那么难。
只是把类型名换了换。对于每次建一个新的对象,只需要先把T 和原本定义的类型名替换掉就可以了
#include<iostream>
#include <cmath>
#include <string>
using namespace std;
template< class T>
class node{
public :
node *pNext;
T data;
node(T t){
pNext=nullptr;
data=t;
}
node(){}
};
template<class T>
class Queue{
public:
node <T> * pHead;
node <T> *pTail;
int cur_size;
Queue(){
pHead=nullptr;
pTail=nullptr;
cur_size=0;
}
T front(){
return *pHead;
}
bool isEmpty(){
if(!cur_size)
return true;
return false;
}
void pop(){
if(isEmpty()) return ;
pHead=pHead->pNext;
}
void push(T tmp ){
node<T >* ans=new node<T>(tmp);
if(pHead==nullptr)
{
pHead=ans;
pTail=ans;
}else{
(pTail->pNext)=ans;
pTail=ans;
}
cur_size++;
return ;
}
void travel(){
node<T> * tmp=pHead;
while(tmp!=nullptr){
cout<<tmp->data<<endl;
tmp=tmp->pNext;
}
}
};
int main(){
Queue<int> q;
for(int i=1;i<=10;i++)
{
q.push(i);
}
q.travel();
q.pop();
q.travel();
return 0;
}