9月8日作业

思维导图

栈stack.h

#ifndef STACK_H
#define STACK_H
#include <iostream>
#define MAXSIZE 128using namespace std;
class Stack
{
public://构造函数Stack();//析构函数~Stack();//拷贝构造函数Stack(const Stack &other);//入栈bool push(int value);//出栈并返回栈顶元素int pop();//清空栈bool clear();//判空bool isEmpty();//判满bool isFull();//获取栈顶元素int stacktop();//求栈的大小int stacksize();//输出栈元素bool show();private:int *stackData;int topIndex;
};#endif // STACK_H

stack.cpp

#include"stack.h"//构造函数
Stack::Stack()
{// 使用动态内存分配来创建堆上的栈stackData = new int[MAXSIZE];topIndex = -1; // 初始化栈顶索引为-1,表示栈为空
}//析构函数
Stack::~Stack()
{delete [] stackData;
}//拷贝构造函数
Stack::Stack(const Stack &other)
{topIndex = other.topIndex;stackData = new int[MAXSIZE];for (int i = 0; i <= topIndex; i++) {stackData[i] = other.stackData[i];}
}//入栈
bool Stack::push(int value)
{if(isFull()){cout<<"该栈已满,无法插入"<<endl;return false;}else {topIndex++;stackData[topIndex] = value;return true;}
}//出栈并返回栈顶元素
int Stack::pop()
{if(isEmpty()){cout<<"该栈为空"<<endl;return -1;}else {int topvalue = stackData[topIndex];topIndex--;return topvalue;}
}//清空栈
bool Stack::clear()
{if(isEmpty()){cout<<"该栈为空"<<endl;return false;}else {topIndex = -1;return true;}
}//判空
bool Stack::isEmpty()
{return topIndex == -1;
}//判满
bool Stack::isFull()
{return topIndex == MAXSIZE-1;
}//获取栈顶元素
int Stack::stacktop()
{return stackData[topIndex];
}//求栈的大小
int Stack::stacksize()
{return topIndex+1;
}//输出栈元素
bool Stack::show()
{if(isEmpty()){cout<<"该栈为空"<<endl;return false;}else {for(int i=0;i<=topIndex; i++){cout<<stackData[i]<<" ";}cout<<endl;return true;}
}

main.cpp

#include"stack.h"int main()
{Stack s1;s1.push(5);s1.push(5);s1.pop();s1.show();s1.~Stack();return 0;
}

循环队列 loopqueue.h

#ifndef LOOPQUEUE_H
#define LOOPQUEUE_H
#include <iostream>
#define MAXSIZE 16using namespace std;
class LoopQueue
{
public://构造函数LoopQueue();//析构函数~LoopQueue();//拷贝构造函数LoopQueue(const LoopQueue &other);//入队列bool push(int value);//出队列并返回队列顶元素int pop();//清空队列bool clear();//判空bool isEmpty();//判满bool isFull();//求队列的大小int LoopQueuesize();//输出队列元素bool show();private:int *LoopQueueData;int FrontIndex;int RearIndex;
};
#endif // LOOPQUEUE_H

loopqueue.cpp

#include"LoopQueue.h"//构造函数
LoopQueue::LoopQueue()
{LoopQueueData = new int[MAXSIZE];FrontIndex = 0;RearIndex = 0;
}//析构函数
LoopQueue::~LoopQueue()
{delete [] LoopQueueData;
}//拷贝构造函数
LoopQueue::LoopQueue(const LoopQueue &other)
{LoopQueueData = new int[MAXSIZE];int i=other.FrontIndex;while(1){LoopQueueData[i] = other.LoopQueueData[i];i++;if(MAXSIZE==i){i=0;}if(i==other.RearIndex){break;}}FrontIndex = other.FrontIndex;RearIndex = other.RearIndex;
}//入队列
bool LoopQueue::push(int value)
{if(isFull()){cout<<"该队列已满"<<endl;return false;}else{LoopQueueData[RearIndex] = value;RearIndex++;return true;}
}//出队列并返回队列顶元素
int LoopQueue::pop()
{if(isEmpty()){cout<<"该队列为空"<<endl;return -1;}else {int Frontvalue = LoopQueueData[RearIndex];FrontIndex++;return Frontvalue;}
}//清空队列
bool LoopQueue::clear()
{if(isEmpty()){cout<<"该队列为空"<<endl;return false;}else {FrontIndex = -1;RearIndex = -1;return true;}
}//判空
bool LoopQueue::isEmpty()
{return FrontIndex==RearIndex;
}//判满
bool LoopQueue::isFull()
{return (RearIndex+1)%MAXSIZE==FrontIndex;
}//求队列的大小
int LoopQueue::LoopQueuesize()
{return (RearIndex-FrontIndex+MAXSIZE)%MAXSIZE;
}//输出队列元素
bool LoopQueue::show()
{if(isEmpty()){cout<<"该队列为空"<<endl;return false;}else {int i=FrontIndex;cout<<"该队列为>>";while(1){cout<<LoopQueueData[i]<<" ";i++;if(MAXSIZE==i){i=0;}if(i==RearIndex){break;}}cout<<endl;return true;}
}

main.cpp

#include"LoopQueue.h"using namespace std;int main()
{LoopQueue l1;/*int value = -1;while(1){cout<<"请输入要插入的值>>> "<<endl;cin>>value;if(-1==value){break;}else{l1.push(value);}}*/l1.push(23);l1.push(44);l1.push(39);l1.pop();l1.show();cout<<"队列大小为>>"<<l1.LoopQueuesize()<<endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/79967.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技师学院物联网实训室建建设方案

一、概述 1.1专业背景 物联网&#xff08;Internet of Things&#xff09;被称为继计算机、互联网之后世界信息产业第三次浪潮&#xff0c;它并非一个全新的技术领域&#xff0c;而是现代信息技术发展到一定阶段后出现的一种聚合性应用与技术提升&#xff0c;是随着传感网、通…

Docker 恶意挖矿镜像应急实例

01、概述 当网络流量监控发现某台运行多个docker容器的主机主动连接到一个疑似挖矿矿池的地址时&#xff0c;需要快速响应和排查&#xff0c;以阻止进一步的损害。 面对docker容器的场景下&#xff0c;如何快速分析和识别恶意挖矿容器?本文将分享一种应急响应思路&#xff0c;…

基于matlab实现的电力系统稳定性分析摆幅曲线代码

完整程序&#xff1a; clear; clc; t 0; tf 0; tfl 0.5; tc 0.5; % tc 0.05, 0.125, 0.5 sec for 2.5 cycles, 6.25 cycles & 25 cycles resp ts 0.05; m 2.52 / (180 * 50); i 2; dt 21.64 * pi / 180; ddt 0; time(1) 0; ang(1) 21.64; pm 0.9; pm1 2.44;…

Redis3.2.1如何设置远程连接?允许局域网访问

背景&#xff1a; 电脑A的redis需要开放给电脑B使用&#xff0c;二者处于同一局域网 【后面会补充更详细的踩坑历程&#xff0c;先发出来作为记录】 过程&#xff1a; 在你查了很多方法后&#xff0c;如果还是没有解决&#xff0c; 尝试考虑一下你的redis配置文件是不是修…

零基础VB6无壳P-CODE逆向分析(VB Decompiler应用与避坑)

> 前言 最近从朋友那里拿到了一个加密狗授权的软件安装包,秉承着LCG的精神,开启了逆向之路,经过查壳和综合分析确定是VB6编写的程序(这年头使用VB6开发商业程序的还真少见),作为一名C# Winform的业余程序员,靠着C#的知识勉强分析个大概. > 授权简介 软件共分三种授权模…

一场深刻的开源聚会:KCC@北京 9.2 活动回顾

开源为我们带来了什么&#xff1f;这是这场聚会的宣传文的标题&#xff1a;https://mp.weixin.qq.com/s/5sR6TPEpQmYNBnCtVilkzg 同样这个问题也可以是极具个体化的&#xff1a;开源为我带来了什么&#xff1f;秋天的周末&#xff0c;预报有雨&#xff0c;北京的开源人还是相聚…

脚本:用python实现五子棋

文章目录 1. 语言2. 效果3. 脚本4. 解读5. FutureReference 1. 语言 Python 无环境配置、无库安装。 2. 效果 以第一回合为例 玩家X 玩家0 3. 脚本 class GomokuGame:def __init__(self, board_size15):self.board_size board_sizeself.board [[ for _ in range(board_…

对IP协议概念以及IP地址的概念进行简单整理

网络层重要协议 参考模型和协议栈IP协议IPv4数据报IP数据报格式IPv4地址特殊IP地址私有IP地址和公有IP地址子网划分 参考模型和协议栈 IP协议 IP协议定义了网络层数据传送的基本单元&#xff0c;也制定了一系列关于网络层的规则。 IPv4数据报 网络层的协议数据单元PDU 叫做分…

基于Java+SpringBoot+Vue+uniapp点餐小程序(包含协同过滤算法和会员系统,强烈推荐!)

校园点餐小程序 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序&#xff08;小蔡coding&#xff09;2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 系统功能结构设计4.2 主要功能描述 五…

【初阶数据结构】栈和队列——C语言(详解)

目录 一、栈 1.1栈的概念及结构 1.2栈的实现 1.2.1静态栈的实现 1.3动态栈的实现 1.3.1栈的创建 1.3.2栈的初始化 1.3.3栈的清空销毁 1.3.4栈的元素插入 1.3.5栈顶元素的删除 1.3.6返回栈顶数据 1.3.7求栈的大小 1.3.8判断栈是否为空 二、栈的实现完整代码 三、队…

Unity 动画系统

动画系统包含&#xff1a; 动画片段 Animation Clip&#xff0c;记录物体变化的信息&#xff0c;可以是角色的闪转腾挪&#xff0c;也可以是一扇门的开闭动画状态机 Animator Controller&#xff0c;根据设置切换动画片段动画组件 Animator&#xff0c;Animation替身 Avatar&a…

数据结构基础8:二叉树oj+层序遍历。

二叉树oj层序遍历 题目一&#xff1a;二叉树的销毁&#xff1a;方法一&#xff1a;前序遍历&#xff1a;方法二&#xff1a;后序遍历&#xff1a; 题目二&#xff1a;二叉树查找值为x的节点方法一&#xff1a;方法二&#xff1a;方法三&#xff1a; 题目三&#xff1a;层序遍历…

透视俄乌网络战之二:Conti勒索软件集团(下)

透视俄乌网络战之一&#xff1a;数据擦除软件 透视俄乌网络战之二&#xff1a;Conti勒索软件集团&#xff08;上&#xff09; Conti勒索软件集团&#xff08;下&#xff09; 1. 管理面板源代码2. Pony凭证窃取恶意软件3. TTPs4. Conti Locker v2源代码5. Conti团伙培训材料6. T…

【Linux从入门到精通】多线程 | 线程互斥(互斥锁)

上篇文章我们对线程 | 线程介绍&线程控制介绍后&#xff0c;本篇文章将会对多线程中的线程互斥与互斥锁的概念进行详解。同时结合实际例子解释了可重入与不被重入函数、临界资源与临界区和原子性的概念。希望本篇文章会对你有所帮助。 文章目录 引入 一、重入与临界 1、1 可…

多线程|多进程|高并发网络编程

一.多进程并发服务器 多进程并发服务器是一种经典的服务器架构&#xff0c;它通过创建多个子进程来处理客户端连接&#xff0c;从而实现并发处理多个客户端请求的能力。 概念&#xff1a; 服务器启动时&#xff0c;创建主进程&#xff0c;并绑定监听端口。当有客户端连接请求…

GitLab使用的最简便方式

GitLab介绍 GitLab是一个基于Git版本控制系统的开源平台&#xff0c;用于代码托管&#xff0c;持续集成&#xff0c;以及协作开发。它提供了一套完整的工具&#xff0c;以帮助开发团队协同工作、管理和部署代码。 往往在企业内部使用gitlab管理代码&#xff0c;记录一下将本地代…

VR航天航空巡展VR科技馆航天主题科普设备沉浸遨游太空

每当飞机飞过头顶&#xff0c;我们总是忍不住抬头去仰望。从嫦娥奔月的神话传说&#xff0c;到莱特兄弟实现了上天翱翔的梦想&#xff0c;人类一直在不断探索更辽阔的天空和浩瀚的宇宙。 航空科普 寻梦而行 普乐蛙VR航天航空巡展&#xff0c;正在湖南郴州如火如荼的进行中&…

arm day2(9.15)数据操作指令,跳转指令,特殊功能寄存器指令,

作业 1.求最大公约数&#xff1a; .text .global _start _start:mov r0,#0x9mov r1,#0x15bl Loop Loop:cmp r0,r1 比较r0寄存器和r1寄存器的中的值beq stop 当两数相同时,退出程序subhi r0,r0,r1 r0>r1 r0 r0 - r1subcc r1,r1,r0 r0<r1 r1 r1 - r0mov pc,lr 恢复现…

【算法与数据结构】108、LeetCode将有序数组转换为二叉搜索树

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;这道题给我们的是一个有序数组&#xff0c;并要求构成一个平衡二叉搜索树&#xff0c;二叉搜索树的很容…

CSS 之 grid 网格布局

一、简介 ​ display: grid;用于设置元素内部的布局类型为网格布局&#xff0c;其外显类型为块级元素。该类型的元素将内部分为行和列&#xff0c;划分成一个个单元格&#xff0c;并通过一系列相关属性控制单元格及其内容的布局和大小。 ​ 该属性值的主要应用场景为&#xf…