当前位置: 首页 > article >正文

4月24日作业

作业1

#include <iostream>
using namespace std;
template <typename T>
class Node
{
private:
    T* p;   //指针指向栈的首地址
    int maxsize; //栈最大容量
    int top=-1;  //栈顶
public:
    Node(){} //无参构造
    Node(int max):maxsize(max)//有参构造 填最大容量
    {p=new T(maxsize);}
    ~Node() //析构函数
    {delete[] p;}
    bool ruzhan(T other) //入栈
    {
        if(maxsize-1==top)//栈满
            return 0;
        else
        {
            p[++top]=other; //输入元素
            return 1;
        }
 
    }
    bool panman()//判满
    {
        return maxsize-1==top;
    }
    bool pankong()  //判空
    {
         return -1==top;
    }
    bool chuzhan(int a)  //出栈  a为出栈个数
    {
        if(-1==top)
        {
            cout<<"栈为空,出栈失败";
            return 0;
        }
 
        else if(a>top+1)
        {
            cout<<"出栈失败,要出栈的个数大于栈里面的数据个数";
            return 0;
        }
        else
        {
            top-=a;
            return 1;
        }
 
 
    }
    void show(); //声明
};
template <typename T1>
void Node<T1>::show()  //遍历栈
{
    for(int i=0;i<=top;i++)
    {
        cout<<"数据域为:"<<p[i]<<endl;
    }
}
int main()
{
   int b=30,c=25,d=2;
   Node<int>a(32);//容量为32的
    a.ruzhan(b);//入栈30
    a.ruzhan(6);
    a.ruzhan(b);
    a.ruzhan(c);
    a.ruzhan(d);
    a.show();
 
    return 0;
}

#include <iostream>
using namespace std;
template <typename T>
class Node
{
private:
    T* p;   //指针指向队列的首地址
    int front=0; //队头
    int rear=0;  //队尾
    int maxsize; //最大容量
public:
    Node(){} //无参构造
    Node(int max):maxsize(max)//有参构造 填最大容量
    {p=new T(maxsize);}
    ~Node() //析构函数
    {delete[] p;}
    bool ruzhan(T other) //入队
    {
        if(front==(rear+1)%maxsize)//队满
            return 0;
        else
        {
 
            p[rear]=other; //输入元素
            rear=(rear+1)%maxsize;
            return 1;
        }
 
    }
    bool panman()  //判满
    {
        return front==(rear+1)%maxsize;
    }
    bool pankong()  //判空
    {
 
         return front==rear;
    }
    bool chuzhan(int a)  //出队  a为出队个数
    {
        if(front==rear)
        {
            cout<<"队列为空,出队失败";
            return 0;
        }
 
        else if(a > (maxsize-front+rear)%maxsize)
        {
            cout<<"出队失败,要出队的个数大于队里面的数据个数";
            return 0;
        }
        else
        {
                for(int i;i<a;i++)
            {
                front=(front+1)%maxsize;    //出队
            }
            return 1;
        }
 
 
    }
    void show(); //声明
};
template <typename T1>
void Node<T1>::show()  //遍历队列
{
    for(int i=front;i!=rear;i=(i+1)%maxsize)
    {
        cout<<"数据域为:"<<p[i]<<endl;
    }
}
int main()
{
 
   Node<int>a(32);//容量为32的
    a.ruzhan(1);//入队
    a.ruzhan(6);
    a.ruzhan(3);
    a.ruzhan(2);
    a.ruzhan(5);
    a.show();
 
 
 
 
    return 0;
}
 
 
 
 
 
 
 
 
 
 
 
 
 

                

http://www.kler.cn/a/14766.html

相关文章:

  • Hadoop 生态圈及核心组件简介Hadoop|MapRedece|Yarn
  • #cordova添加plugin的方法#
  • day-01 one-day projects
  • sd卡中病毒的表现及sd文件消失后的恢复方法
  • 23年校赛
  • 【Mybatis代码生成器Mybatis-Generator】
  • JavaScript每日五题面试题(第六天)
  • 备忘录设计模式(Memento Pattern)[论点:概念、组成角色、示例代码、框架中的运用、适用场景]
  • 创新引擎:云计算五大优势解锁企业潜力
  • 大数据Doris(五):FE 扩缩容
  • CVE漏洞复现-CVE-2021-22205 GitLab未授权 RCE
  • 自动化测试的生命周期是什么?
  • 【设计模式】工厂模式
  • 自定义RecyclerView.LayoutManager实现类实现卡片层叠布局的列表效果
  • CDQ分治学习笔记
  • 二叉树遍历(先序、中序、后序、层次遍历)递归、循环实现
  • Python列表和字典前面为什么要加星号(**)?
  • 滑动奇异频谱分析:数据驱动的非平稳信号分解工具(Matlab代码实现)
  • Windows下virtualbox相关软件安装设置全过程
  • 不得不说的结构型模式-外观模式