C++ day6

将栈和队列封装成模板类

栈:

#include 
#define N 128

using namespace std;

template 
class My_stack{
private:
    T data[N];
    int top;
public:
    //无参构造
    My_stack();

    //判空
    bool empty()const;

    //入栈
    void push(const T val);

    //出栈
    void pop();

    //求栈中元素个数
    int size();

    //求栈顶元素
    T& My_top();

    //遍历
    void show();
};

//无参构造
template 
My_stack ::My_stack():top(-1){}

//判空
template 
bool My_stack::empty()const{
    return top == -1?1:0;
}

//入栈
template 
void My_stack::push(const T val){
    if(top == N){cout<<"栈满"<
void My_stack::pop(){
    if(empty()){cout<<"栈空"<
T& My_stack::My_top(){
    if(empty()){cout<<"栈空"<
int My_stack::size(){
    cout<<"栈中元素个数为:";
    return top+1;
}

//遍历
template 
void My_stack::show(){
    if(empty()){cout<<"栈空"< s;
   for(int i=0;i<10;i++){
        s.push(i);
   }
   s.show();
   cout<

C++ day6_第1张图片

队列: 

#include 
#define N 9

using namespace std;

template 
class My_queuse{
private:
    T data[N];
    int front,tail;
    int len;
public:
    //无参构造
    My_queuse();

    //判空
    bool empty()const;

    //判满
    bool full()const;

    //入队
    void push(const T &val);

    //出队
    void pop();

    //求队中元素个数
    int size();

    //求队头元素
    T& My_front();

    //遍历
    void show();
};

//无参构造
template 
My_queuse::My_queuse():front(0),tail(0),len(0){}


//判空
template 
bool My_queuse::empty()const{
    if(tail == front){
        return true;
    }
        return false;
}

//判满
template 
bool My_queuse::full()const{
    if((tail+1)%N == front){
        return true;
    }
        return false;
}

//入队
template 
void My_queuse::push(const T &val){
    if(full()){cout<<"队满"<
T& My_queuse::My_front(){
    if(empty()){cout<<"队满"<
void My_queuse::pop(){
    if(empty()){return;}
    data[front] = 0;
    front = (front+1)%N;
    len--;
    return;
}

//队内元素个数
template 
int My_queuse::size(){
    return len;
}

//遍历
template 
void My_queuse::show(){
    if(empty()){return;}
    int i = front;
    while(1){
        cout< q;
    for(int i=0;i<8;i++){
        q.push(i+1);
    }
    q.show();
    cout<<"队长为:"<

 C++ day6_第2张图片

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