欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > 栈(模板)、队列(模板)(9.27)

栈(模板)、队列(模板)(9.27)

2024/10/24 18:23:51 来源:https://blog.csdn.net/weixin_65741913/article/details/142601479  浏览:    关键词:栈(模板)、队列(模板)(9.27)

栈 

#include <iostream>
#include<vector>
using namespace std;
template<typename T>
class my_stack
{
private:vector<T> *data;public:my_stack() :data(new vector<T>()){}~my_stack(){delete data;};bool empty();//入栈void push(int a);void pop();//栈顶int top();//栈大小size_t size();
};template<typename T>
bool my_stack<T>::empty()
{cout<<"栈为空栈"<<endl;return data->empty();
}template<typename T>
void my_stack<T>::push(int a){data->push_back(a);cout<<"入栈成功"<<endl;
}template<typename T>
void my_stack<T>::pop(){if(data->empty()==0){cout<<"出栈:"<<(int)data->back()<<endl;data->pop_back();return;}cout<<"栈为空栈"<<endl;return;
}template<typename T>
//栈顶
int my_stack<T>::top(){if(data->empty()==0){return data->back();}std::cout<<"栈为空栈"<<std::endl;return 0;
}template<typename T>
//栈大小
size_t my_stack<T>::size(){return data->size();
}int main()
{my_stack <int>s;s.push(1);s.push(2);s.push(3);s.push(4);s.pop();cout<<"top:"<<s.top()<<endl;s.pop();s.pop();s.pop();cout<<"栈大小:"<<s.size()<<endl;s.empty();return 0;
}

队列 

#include <iostream>
#include <vector>
using namespace std;template <typename T>
class my_queue
{
private:vector <T>*data;
public:my_queue() :data(new vector<T>){}~my_queue(){delete data;}bool empty();//入队void push(int a);//出队void pop();//队头int top();//队大小size_t size();
};
template <typename T>
bool my_queue<T>::empty()
{
cout<<"队列为空队"<<endl;
return data->empty();
}//入队
template <typename T>
void my_queue<T>::push(int a){
data->push_back(a);
cout<<data->back()<<"入队成功:"<<endl;
}//出队
template <typename T>
void my_queue<T>::pop(){
if(data->empty()==0)
{cout<<"出队:"<<data->front()<<endl;data->erase(data->begin());
}
else
{
cout<<"队列为空队"<<endl;
}
return;
}//队头
template <typename T>
int my_queue<T>::top(){
if(data->empty()==0)
{return data->front();
}
std::cout<<"队列为空队"<<std::endl;
return 0;
}//队大小
template <typename T>
size_t my_queue<T>::size(){
return data->size();
}int main()
{my_queue<int> s;s.push(1);s.push(2);s.push(3);s.push(4);cout<<"队大小:"<<s.size()<<endl;s.pop();cout<<"top:"<<s.top()<<endl;s.pop();s.pop();s.pop();cout<<"队大小:"<<s.size()<<endl;s.empty();return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com