使用C++封装顺序表

作业:使用C++手动封装一个顺序表,包含成员数组一个,成员变量N个

#include <iostream>using namespace std;using datatype=int;
#define MAX 20struct SeqList
{   private:               //私有datatype *data;int size=0;              //数组的大小int len=0;          //顺序表实际长度public://要实现的函数//初始化void init(int s);//1.判空bool empty();//2.判满bool full();//3.求当前顺序表的实际长度int length();//4.添加数据函数bool add(datatype e);//5.任意位置插入函数bool insert_pos(int pos,datatype e);//6.任意位置删除函数bool delete_pos(int pos);//7.访问容易中任意一个元素atdatatype &at(int index);//遍历数组void show();//销毁void distroy();};//初始化
void SeqList::init(int s)
{size = s;    //此时最大容量data = new datatype(size);    //申请空间
}//1判空
bool SeqList::empty()
{return len==0;
}//2判满
bool SeqList::full()
{return len==size;
}//求当前顺序表的实际长度
int SeqList::length()
{cout<<"当前实际长度:"<<len<<endl;return len;
}//添加数据函数
bool SeqList::add(datatype e)
{//判断是否满if(full()==1){cout<<"已满,添加失败!"<<endl;return 0;}data[len]=e;len++;cout<<"成功添加!"<<endl;
}//任意位置插入函数
bool SeqList::insert_pos(int pos,datatype e)
{//判断是否满if(full()==1){cout<<"已满,添加失败!"<<endl;return 0;}for(int i=len-1;i>=pos;i--){data[i+1]=data[i];}data[pos]=e;len++;cout<<"成功添加!"<<endl;
}//6.任意位置删除函数
bool SeqList::delete_pos(int pos)
{//判断是否为空if(empty()){cout<<"为空表,删除失败!"<<endl;return 0;}for(int i=pos-1;i<len;i++){data[i]=data[i+1];}len--;cout<<"成功删除!"<<endl;
}//7访问容器中任意一个元素at
datatype &SeqList::at(int index)
{cout<<data[index]<<endl;return data[index];
}//遍历
void SeqList::show()
{cout<<"数据:";for(int i=0;i<len;i++){cout<<data[i]<<" ";}cout<<endl;
}
//任意位置函数lete_pos(int pos);//释放空间
void SeqList::distroy()
{delete data;
}int main()
{//定义SeqList p1;//调用初始化p1.init(20);//调用添加p1.add(4);p1.add(6);p1.add(8);p1.show();//调用任意位置插入p1.insert_pos(2,9);p1.show();//调用按位置删除p1.delete_pos(2);p1.show();//调用访问元素p1.at(2);//查看当前长度p1.length();//释放p1.distroy();return 0;
}

思维导图:

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

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

相关文章

【Java】数据类型与变量(二)

目录 3.变量 3.1什么是变量&#xff08;变量的概念&#xff09; 3.2语法格式 ​编辑​编辑3.3整型变量 3.3.1整型变量如何定义 ​编辑 3.3.2长整型变量 3.3.3短整型变量 3.3.4字节型变量 3.4浮点型变量 3.4.1双精度浮点型 3.4.2单精度浮点型 3.4.3单精度浮点型与双…

Google Search Console:完整教程

Google 提供了各种工具来收集和分析网站数据&#xff0c;其中最有价值的工具之一是 Google Search Console &#xff08;GSC&#xff09;。前身为 Google Webmaster Tools&#xff0c;它为 SEO 提供了对网站性能的宝贵见解。自 2015 年推出以来&#xff0c;该平台取得了长足的发…

关机软件项目规划

一、概述 1.1 编写目的 此项目开发规划书的编写主要是为《UPS SNMP卡网络监控系统》中配套使用的关机软件做主要的规划和整合&#xff0c;在开发过程中起到引导作用&#xff0c;以及给使用者提供简要的说明。 1.2 项目背景 关机软件是UPS网络监控适配器项目监控层的组成部分…

黑神化爆火,悟空的八十一难究竟用到了什么数据库?

九九八十一难&#xff0c;第一难。猿神&#xff0c;启动…然后发现先解压缩&#xff0c;后着色编译。就这姿势&#xff0c;这就是爆火的 《黑神话&#xff1a;悟空》单机游戏&#xff0c;哪怕是在工作日&#xff0c;大家仍纷纷涌入这个游戏世界。8月20日&#xff0c;万众瞩目的…

Excel表格合并后同步修改行号,删除重复项,按合并后的列进行排序

Excel合并单元格后每个合并后的行占据多列&#xff0c;如何进行排序 1、全选后选择合并选项中的取消合并单元格 2、选择删除重复项&#xff08;可以直接选定唯一行&#xff09; 3、可以发现合并后的每行占Excel的一行 4、然后制定排序规则 5、序号列下拉重排&#xff08;鼠标放…

智谱开源 CogVideoX-5B 视频生成模型,RTX 3060 显卡可运行;曝 OpenAI 模型「草莓」今秋推出

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

Android Studio Koala下载并安装,测试helloworld.

1、下载&#xff1a; 下载 Android Studio 和应用工具 - Android 开发者 | Android Developers 2、滚动条拉到近最后&#xff0c;各个系统的下载地址&#xff1a; 3、下载完成以后&#xff0c;我们双击运行安装&#xff1a; 如果有路径要修改&#xff0c;则修改下就可以了&a…

【大模型系列篇】预训练模型:BERT GPT

2018 年&#xff0c;Google 首次推出 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;。该模型是在大量文本语料库上结合无监督和监督学习进行训练的。 BERT 的目标是创建一种语言模型&#xff0c;可以理解句子中单词的上下文和含义&…

新华三H3C HCL配置IS-IS基本配置

实验目标 完成本实验,应该能够达到以下目标。 ●掌握如何在路由器进行单区域IS-IS的基本配置 ●掌握如何在路由器上查看IS-IS路由表、邻居信息 ●掌握如何在路由器上查看IS-IS的LSDB信息 实验拓扑 IP地址表 实验任务 单区域配置&#xff1a; 在本实验任务中,需要在路由器上…

Dockerfile+私有仓库

使用Dockerfile创建应用镜像 在Docker file中定义所需要执⾏的指令&#xff0c;使⽤ docker build创建镜 像&#xff0c;过程中会按照dockerfile所定义的内容进⾏打开临时性容器&#xff0c;把docker file中命令全部执⾏完成&#xff0c;就得到了⼀个容器应⽤镜像&#xff0c;每…

排序算法刷题【leetcode88题目:合并两个有序数组、leetcode21:合并两个有序链表】

一、合并两个有序数组 题目比较简单&#xff0c;使用归并排序里面的同样的操作就可以&#xff0c;代码如下所示 #include <iostream> #include <vector> using namespace std;/* leetcode88题&#xff1a;合并两个有序数组 */ class Solution { public:void merge…

代码随想录训练营 Day41打卡 动态规划 part08 121. 买卖股票的最佳时机 122. 买卖股票的最佳时机II 123. 买卖股票的最佳时机III

代码随想录训练营 Day41打卡 动态规划 part08 一、力扣121. 买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计…

网络安全总结②

上一篇&#xff1a;网络安全总结① 下一篇&#xff1a; 传统防火墙 传统防火墙 技术&#xff1a;访问控制、代理技术、会话机制 工作层次&#xff1a;应用层一下 防御模式&#xff1a;通过防御设备划分边界&#xff0c;基于IP/端口和特征进行判断&#xff1b;以隔离为基础&am…

java Boss直聘爬虫数据分析

摘要 本报告利用Java和Selenium爬虫技术获取数据&#xff0c;并使用ECharts库对薪资数据进行可视化分析&#xff0c;旨在探究不同经验和学历的薪资分布情况。 数据来源 数据来源于Boss直聘&#xff0c;使用Java结合Selenium库进行数据抓取。 数据总数&#xff1a;约2000家企…

LeetCode --- 411周赛

题目列表 3258. 统计满足 K 约束的子字符串数量 I 3259. 超级饮料的最大强化能量 3260. 找出最大的 N 位 K 回文数 3261. 统计满足 K 约束的子字符串数量 II 一、统计满足K约束的子字符串数量I 这种要求满足区间内某种性质的题&#xff0c;一般都可以用滑动窗口来做。这题…

黄河:曾月入十几万,被裁后做独立开发,我每天必须要做的事就是写代码

这是《开发者说》的第16期&#xff0c;本期我们邀请的开发者是黄河&#xff0c;来自西北城市银川&#xff0c;半路转行为程序员&#xff0c;靠着自己对编程的热爱&#xff0c;一路坚持下来&#xff0c;虽地处偏远&#xff0c;正是得益于互联网的好处&#xff0c;让全球每一个角…

畅捷通CRM newleadset.php SQL注入漏洞复现

0x01 产品简介 用友畅捷通CRM是面向小企业全力打造的简单、实用的客户关系管理应用。帮助企业用好自己的客户资源、管好商机跟进过程、引导好业务员跟单行为,促进团队销售能力的提升;通过查询和分析,识别企业的价值客户,融合电话、短信、邮件等工具,实现精准营销;帮助企…

网络安全之渗透测试实战-DC-3-靶机入侵

一、下载靶机DC-3&#xff0c;解压后导入Vmware Workstation https://pan.baidu.com/s/17BcSH6RqC7wuyB7PRNqOow?pwdkc12启动DC-3靶机&#xff0c;由于不知道密码&#xff0c;无需登录 二、靶机的网卡采用的是NAT模式自动获取IP地址&#xff0c;此时我们需要先获取其MAC地址…

Qt:鼠标事件

虽然Qt是跨平台的c开发框架&#xff0c;但是Qt的很多能力是系统提供的&#xff0c;只是其封装了系统的API&#xff0c;例如在Linux环境下的Qt就封装了Linux的一堆API 系统API 事件&#xff1a;图形化界面中&#xff0c;用户操作和程序之间交互的机制&#xff08;封装了系统的事…

机器学习:DBSCAN算法(内有精彩动图)

目录 前言 一、DBSCAN算法 1.动图展示&#xff08;图片转载自网络&#xff09; 2.步骤详解 3.参数配置 二、代码实现 1.完整代码 2.代码详解 1.导入数据 2.通过循环确定参数最佳值 总结 前言 DBSCAN&#xff08;Density-Based Spatial Clustering of Applications w…