2024.9.3 作业

2024-09-03 20:44
文章标签 作业 2024.9

本文主要是介绍2024.9.3 作业,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

自己实现栈和队列

代码:

/*******************************************/

文件名:sq.h

/*******************************************/

#ifndef SQ_H
#define SQ_H
#include <iostream>
#include<cstring>using namespace std;
class Mystack
{
private:char *data;size_t size=0;size_t cap=10;void resize(){size_t newcap=2*cap;char *newdata=new char[newcap];for(size_t i=0;i<size;i++){newdata[i]=data[i];}delete[]data;data=newdata;cap=newcap;}
public:Mystack():size(0),cap(10){data=new char[cap];}~Mystack(){delete[]data;}Mystack &operator=(const Mystack &other);char top();bool empty()const;size_t getsize()const;void push(const char &value);void pop();void show();
};class Myqueue
{
private:char *data;int frontIndex; // 队列头部的索引int rearIndex;  // 队列尾部的索引int capacity;   // 队列的容量int count;      // 队列中当前元素的数量void resize() {char* newData = new char[capacity * 2];int i = 0;for (int j = frontIndex; i < count; j = (j + 1) % capacity, ++i) {newData[i] = data[j];}delete[] data;data = newData;frontIndex = 0;rearIndex = count;capacity *= 2;}
public:Myqueue():frontIndex(0),rearIndex(0),capacity(10),count(0){data = new char[capacity];}~Myqueue(){delete[] data;}Myqueue &operator=(const Myqueue &other);char &front();char &back();bool empty()const;size_t size()const;void push(const char &value);void pop();void show();
};#endif // SQ_H

/*******************************************/

文件名:sq.cpp

/*******************************************/

#include"sq.h"
Mystack &Mystack::operator=(const Mystack &other)
{delete[] data;size = other.size;cap = other.cap;data = new char[cap];for (size_t i = 0; i < size; ++i) {data[i] = other.data[i];}return *this;
}
char Mystack::top()
{return data[size-1];
}
bool Mystack::empty()const
{return size==0;
}
size_t Mystack::getsize()const
{return cap;
}
void Mystack::push(const char &value)
{if (size == cap){resize();}data[size++] = value;
}
void Mystack::pop()
{data[size--]=0;
}
void Mystack::show()
{for(size_t i=0;i<size;i++){cout<<data[i];}cout<<endl;
}Myqueue &Myqueue::operator=(const Myqueue &other)
{delete[] data;count = other.count;capacity = other.capacity;data = new char[capacity];for (int i = 0; i < count; ++i) {data[i] = other.data[i];}return *this;
}
char &Myqueue::front()
{return data[frontIndex];
}
char &Myqueue::back()
{return data[(rearIndex - 1 + capacity) % capacity];
}
bool Myqueue::empty()const
{return count == 0;
}
size_t Myqueue::size()const
{return count;
}
void Myqueue::push(const char &value)
{if (count == capacity) {resize();}data[rearIndex] = value;rearIndex = (rearIndex + 1) % capacity;++count;
}
void Myqueue::pop()
{frontIndex = (frontIndex + 1) % capacity;--count;
}
void Myqueue::show()
{for(int i=0;i<count;i++){cout<<data[i];}cout<<endl;
}

/*******************************************/

文件名:main.cpp

/*******************************************/

#include"sq.h"int main()
{Mystack s1;s1.push('a');s1.push('a');s1.push('a');s1.push('a');s1.push('a');cout<<s1.top()<<endl;cout<<s1.getsize()<<endl;s1.show();Mystack s2;s2=s1;s2.show();s2.pop();s2.show();Myqueue q1;q1.push('b');q1.push('b');q1.push('b');q1.push('b');q1.push('c');cout<<q1.front()<<endl;cout<<q1.back()<<endl;cout<<q1.size()<<endl;q1.show();Myqueue q2;q2=q1;q2.show();q2.pop();q2.show();return 0;
}

结果:

思维导图:

这篇关于2024.9.3 作业的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133998

相关文章

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

2024.9.8

打了一上午又一下午的比赛 DABOI Round 1 【MX-X3】梦熊周赛 · 未来组 3 & RiOI Round 4 第一场还好,共得180pts 难度比较合理,偏向正常noip 然后就发现自己计数问题很难做到推广思路,只会部分分 梦熊的模拟赛就抽象了 题目难度夸大不小,而且题目看起来出的很陌生?没有见过类似的出题方式 然后就改了改赛上的题 https://www.luog

2024.9.7

写了一套质量真的真的很高的模拟赛题 T1 A. 数正方体 时间限制: 1 s   内存限制: 1024 MB   测评类型: 传统型 T1 数正方体 题目描述 众所周知,正方形有 4 个点,4 条边;正方体有 4 个点,12 条边,6 个面,定义点为零维基础图形,线段为一维基础图形,正方形为二维基础图形,正方体为三维基础图形…,那么请问,一个 n 维基础图形包含多少个 m 维基础图形呢 (m≤

Java高级Day38-网络编程作业

112.网络编程作业 //1.使用字符流的方式,编写一个客户端程序和服务器端程序//2.客户端发送"name",服务器端接收到后,返回"我是nova"//3.客户端发送"hobby",服务器端接收到后,返回"编写java程序"//4.不是这两个问题,回复"你说啥呢"​​===============//客户端//===============public class SocketT

2024.9.6

做题历程: 第一套 A. ladice B. card C. dojave D. drop 第二套 P9868 [NOIP2023] 词典 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) P9869 [NOIP2023] 三值逻辑 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) P9870 [NOIP2023] 双序列拓展 - 洛谷 | 计算机科学教

0906作业+思维导图梳理

一、作业: 1、创捷一个类似于qq登录的界面 1)源代码 #include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget){ui->setupUi(this);//QPushbutton:登录、退出this->join = new QP

2024.9.6 作业

1> 手写unique_ptr指针指针 #include <iostream>using namespace std;template <typename T>class my_unique_ptr{public:explicit my_unique_ptr(T *p = nullptr) noexcept // 构造函数{ptr = p;}~my_unique_ptr() noexcep

9月6号作业

1:.h文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QWidget> #include<QIcon> //图标类 #include<QLabel> //标签类 #include<QMovie> //动图类 #include<QLineEdit> //行编辑器类

Flink实例(六十九): flink 作业提交(四)总结

独立集群提交 # 启动集群bin/start-cluster.sh# 提交job./bin/flink run ./examples/batch/WordCount.jar --input hdfs:/user/yuan/input/wc.count --output hdfs:/user/yuan/swwwttt yarn session # 启动集群./bin/