五個類

#include<iostream>
#include<Windows.h>
using namespace std;
#define M 5
class xian//線性類虛基類
{
public:
    virtual void stact() =0;//初始化函數(shù)
    virtual void In() = 0;//輸入函數(shù)
    virtual void out() = 0;//輸出函數(shù)
protected:
    int len;//長度
};
#include"xian.h"
struct Data//建立結(jié)構(gòu)體
{
    int element;//要輸入的元素
    Data *next;
};
class lian:protected xian//鏈式類繼承線性類
{
public:
    void stact() {
        len = 0;
    }//定義初始化函數(shù)
    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()//析構(gòu)函數(shù)
    {
        front = NULL;
        rear = NULL;
    }
    virtual void In();//定義輸入函數(shù)
    virtual void out();//定義輸出函數(shù)
};
#include"lian.h"
class zhan:protected lian//棧類繼承鏈式類
{
protected:
    Data *p, *q;//定義兩個指針
public:
    zhan() 
    {
        p = NULL;
        q = NULL;
    }
    virtual void In();//定義輸入函數(shù)
    virtual void out();//定義輸出函數(shù)
};
#include"dui.h"
void dui::In()//隊列之輸入函數(shù)
{
    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()//隊列之輸出函數(shù)
{
    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()//棧之輸入函數(shù)
{
    stact();
    do
    {
        p = new Data;
        cin >> p->element;
        p->next = q;
        q = p;
        len++;
    } while (p->element != 0);
}
void zhan::out()//棧之輸出函數(shù)
{
    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;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.父母不能理解自己,沒有處理事情的能力,做任何事都會被嘮叨。我們會很反感,對要做的事缺乏信心,甚至有些時候會因為...
    不知多久閱讀 214評論 0 0
  • 富貴的人,要有富貴的心,就有富貴嘴。 富貴的人,要有富貴的心,就有富貴的嘴。人造嘴業(yè)最為快,逞一時之快,但后患無窮...
    金飾有圓_b802閱讀 261評論 0 0
  • 整理完,有感觸。中華民族的歷史,合久必分,分久必合。任何朝代,興與衰,從單個事件上看是偶然,把時間拉長看也是必然。...
    明哥的大樹閱讀 581評論 2 3
  • aWaNg_閱讀 298評論 0 1

友情鏈接更多精彩內(nèi)容