五个类

#include<iostream>
#include<Windows.h>
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 <<endl<< "队列:" << endl;
    d.In();
    d.out();
    cout << endl;
    int p = 6;
    while (p--&&p>0)//5秒后退出
    {
        cout << p << "秒退出!"<<endl;
        Sleep(1000);
    }
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.父母不能理解自己,没有处理事情的能力,做任何事都会被唠叨。我们会很反感,对要做的事缺乏信心,甚至有些时候会因为...
    不知多久阅读 194评论 0 0
  • 富贵的人,要有富贵的心,就有富贵嘴。 富贵的人,要有富贵的心,就有富贵的嘴。人造嘴业最为快,逞一时之快,但后患无穷...
    金饰有圆_b802阅读 209评论 0 0
  • 整理完,有感触。中华民族的历史,合久必分,分久必合。任何朝代,兴与衰,从单个事件上看是偶然,把时间拉长看也是必然。...
    明哥的大树阅读 541评论 2 3
  • aWaNg_阅读 279评论 0 1