C++ - day3

1> 自行封装一个栈的类,包含私有成员属性:栈的数组、记录栈顶的变量

成员函数完成:构造函数、析构函数、拷贝构造函数、入栈、出栈、清空栈、判空、判满、获取栈顶元素、求栈的大小

头文件

#ifndef TEXT_H
#define TEXT_H
#include 

using namespace std;
class zn
{
private:
    int *num;
    int top=-1;
public:
    //无参构造函数
    zn();
    //有参构造函数
    zn(int p);
    //析构函数
    ~zn();
    //拷贝构造函数
    zn(const zn &other);

    //判空
    bool myemp();
    //判满
    bool myfull();
    //入栈
    int myinput();
    //出栈
    int myoutput();
    //获取栈顶元素
    int gettop();
    //清空栈
    int myclear();
    //求栈的大小
    void mysize();
    void show();
};
#endif // TEXT_H

函数文件

#include"text.h"
//无参构造函数
zn::zn():num(new int[5]){}
//有参构造函数
zn::zn(int p):top(p){
    num=new int[5];
    for(int i=0;i<=this->top;i++)
    {
        cin>>num[i];
    }
}
//析构函数
zn::~zn()
{
    delete []num;
}
//拷贝构造函数
zn::zn(const zn &other):top(other.top){
    num=new int[5];
    for(int i=0;i<=other.top;i++)
    {
        num[i]=other.num[i];
    }
}

//判空
bool zn::myemp()
{
    if(top==-1)
    {
        return true;
    }
    return false;
}
//判满
bool zn::myfull()
{
    if(top==5)
    {
        return true;
    }
    return false;
}
//入栈
int zn::myinput()
{
   if(myfull())
   {
       cout<<"入栈失败"<>num[top];
   cout<<"入栈成功"<top=-1;
   cout<<"清空成功"<

测试文件

#include 
#include "text.h"
using namespace std;

int main()
{
    //无参构造
    zn a1;
    a1.myinput();
    a1.myinput();
    a1.myinput();
    a1.myinput();
    a1.gettop();
    a1.myoutput();
    //拷贝构造
    zn a2=a1;
    a2.show();
    a2.mysize();
    cout<<"**************"<

C++ - day3_第1张图片

2> 自行封装一个循环顺序队列的类,包含私有成员属性:存放队列的数组、队头位置、队尾位置

成员函数完成:构造函数、析构函数、拷贝构造函数、入队、出队、清空队列、判空、判满、求队列大小

头文件

#ifndef TEXT_H
#define TEXT_H
#include 

using namespace std;
class dl
{
private:
    int *num;
    int tail=0;     //队尾
    int head=0;    //队头
public:
    //无参构造
    dl();
    //拷贝构造
    dl(const dl &other);
    //析构函数
    ~dl();

    //入队
    void input();
    //出队
    void output();
    //清空队列
    void clear();
    //判空
    bool myemp();
    //判满
    bool myfull();
    //求队列的大小
    void mysize();
    void show();
};
#endif // TEXT_H

函数文件

#include"text.h"
//无参构造
dl::dl():num(new int[10]){};
//拷贝构造
dl::dl(const dl &other):tail(other.tail),head(other.head)
{
    num=new int[10];
    int i=other.head;
    do
    {
        num[i]=other.num[i];
        i=(i+1)%10;
    }while(i!=other.tail);
}
//析构函数
dl::~dl(){
    delete []num;
}

//入队
void dl::input()
{
    if(myfull())
    {
        cout<<"队列满啦"<>num[tail];
        tail=(tail+1)%10;
    }
}
//出队
void dl::output()
{
    if(myemp())
    {
        cout<<"队列无元素"<

测试文件

#include 
#include "text.h"
using namespace std;

int main()
{
    dl s1;
    s1.input();
    s1.input();
    s1.input();
    s1.show();
    s1.output();
    s1.input();
    s1.input();
    s1.show();
    s1.input();
    s1.mysize();
    dl s2(s1);
    s2.show();

    return 0;
}

C++ - day3_第2张图片

你可能感兴趣的:(c++,java,数据结构)