栈
#include <iostream>
using namespace std;
class my_stack
{
private:
string data;
public:
my_stack() {}
~my_stack(){};
bool empty(){
cout<<"栈为空栈"<<endl;
return data.empty();
}
//入栈
void push(int a){
data.push_back(a);
cout<<"入栈成功"<<endl;
}
//出栈
void pop(){
if(data.empty()==0)
{
cout<<"出栈:"<<(int)data.back()<<endl;
data.pop_back();
return;
}
cout<<"栈为空栈"<<endl;
return;
}
//栈顶
int top(){
if(data.empty()==0)
{
return data.back();
}
std::cout<<"栈为空栈"<<std::endl;
return 0;
}
//栈大小
size_t size(){
return data.size();
}
};
int main()
{
my_stack 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>
using namespace std;
class my_queue
{
private:
string data;
public:
my_queue() {}
~my_queue(){}
bool empty(){
cout<<"栈为空栈"<<endl;
return data.empty();
}
//入栈
void push(int a){
data.push_back(a);
cout<<"入栈成功"<<endl;
}
//出栈
void pop(){
if(data.empty()==0)
{
cout<<"出栈:"<<(int)data.front()<<endl;
for(int i=0;i<(int)data.size();i++)
{
data[i]=data[i+1];
}
data.pop_back();
return;
}
cout<<"栈为空栈"<<endl;
return;
}
//栈顶
int top(){
if(data.empty()==0)
{
return data.front();
}
std::cout<<"栈为空栈"<<std::endl;
return 0;
}
//栈大小
size_t size(){
return data.size();
}
};
int main()
{
my_queue 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;
}