五个类

#include
#include
using namespace std;
#define M 5
class xian//线性类虚基类
{
public:
    virtual void stact() =0;//初始化函数
    virtual void In() = 0;//输入函数
    virtual void out() = 0;//输出函数
protected:
    int len;//长度
};
#include"xian.h"
struct Data//建立结构体
{
    int element;//要输入的元素
    Data *next;
};
class lian:protected xian//链式类继承线性类
{
public:
    void stact() {
        len = 0;
    }//定义初始化函数
    virtual void In()=0;
    virtual void out()=0;
};
#include"xian.h"
class shun :protected xian//顺序表继承线性表
{
protected:
    int v[M];
    int element;
public:
    void stact();
    virtual void In() = 0;
    virtual void out() = 0;
};
#include"zhan.h"
class dui :protected lian//队列类继承链式类
{
protected:
    Data *front, *rear;//定义两个指针
public:
    dui()//析构函数
    {
        front = NULL;
        rear = NULL;
    }
    virtual void In();//定义输入函数
    virtual void out();//定义输出函数
};
#include"lian.h"
class zhan:protected lian//栈类继承链式类
{
protected:
    Data *p, *q;//定义两个指针
public:
    zhan() 
    {
        p = NULL;
        q = NULL;
    }
    virtual void In();//定义输入函数
    virtual void out();//定义输出函数
};
#include"dui.h"
void dui::In()//队列之输入函数
{
    stact();
    Data *e=NULL;
    do
    {
        rear = new Data;
        cin >> rear->element;
        if (len == 0)
        {
            e=front = rear;
        }
        else
        {
            e->next = rear;
            e = rear;
        }
        rear->next = NULL;
        len++;
    } while (rear->element != 0);
}
void dui::out()//队列之输出函数
{
    Data *r=NULL;
    while (front!=rear)
    {
        r = front;
        cout << front->element<<" ";
        front = front->next;
        delete r;//删除元素
        len--;
    }
    if (front ==rear)
        cout << front->element;
}
#include"zhan.h"
void zhan::In()//栈之输入函数
{
    stact();
    do
    {
        p = new Data;
        cin >> p->element;
        p->next = q;
        q = p;
        len++;
    } while (p->element != 0);
}
void zhan::out()//栈之输出函数
{
    Data *r;
    while (q)
    {
        r = q;
        cout << q->element<<" ";
        q = q->next;
        delete r;//删除元素
        len--;
    }
}
#include"dui.h"
int main()
{
    zhan z;//定义栈对象
    cout << "栈:" << endl;
    z.In();
    z.out();
    dui d;//定义队列对象
    cout <0)//5秒后退出
    {
        cout << p << "秒退出!"<

你可能感兴趣的:(五个类)