c++ day 6

1、 将之前定义的栈类和队列类都实现成模板类

#include 

using namespace std;



#define MAX 128

template

class Stack
{
public:
    //构造函数
    Stack();
    //析构函数
    ~Stack();
    //拷贝构造函数
    Stack(const Stack &other);
    //入栈
    int push(T e);
    //出栈
    int pop();
    //清空栈
    void clear();
    //判空
    bool empty();
    //判满
    bool full();
    //获取栈顶元素
    T topdata();
    //求栈的大小
    int size();
private:
    T*data;
    int top;

};

template
//构造函数
Stack::Stack():data(new T[MAX]),top(-1){cout<<"构造函数"<
//析构函数
Stack::~Stack()
{
    delete []data;  //释放指针空间
    cout<<"析构函数"<

//拷贝构造函数
Stack::Stack(const Stack &other):data(new T[MAX]),top(other.top)
{
    std::copy(other.data,other.data+MAX,data);
    cout<<"拷贝函数"<
int Stack::push(T e){
    if(Stack::full()){
        cout<<"栈满,无法入栈;"<
int Stack::pop(){
    if(Stack::empty()){
        cout<<"栈空,无法出栈;"<
void Stack::clear(){
    cout<<"栈已清空"<
bool Stack::empty(){
    return -1 == top;
}
//判满
template 
bool Stack::full(){
    return MAX-1 == top;
}
//获取栈顶元素
template 
T Stack::topdata(){
    cout<<"栈顶元素为:";
    return data[top];
}
//求栈的大小
template 
int Stack::size(){
    cout< s;
    s.push("haha");
    s.push("wowo");
    s.push("nini");
    s.push("tata");
    s.push("lala");
    s.push("hehe");
    cout< s2=s;
    cout< s3=s2;
    cout<

c++ day 6_第1张图片

2、思维导图

你可能感兴趣的:(c++,开发语言,算法)