c++顺序表(连续插入删除)
Description
建立顺序表的类,属性包括:数组、实际长度、最大长度(设定为1000)
该类具有以下成员函数:
构造函数:实现顺序表的初始化。
插入多个数据的multiinsert(int i, int n, int item[])函数,实现在第i个位置,连续插入来自数组item的n个数据,即从位置i开始插入多个数据。
删除多个数据的multidel(int i, int n)函数,实现从第i个位置开始,连续删除n个数据,即从位置i开始删除多个数据。
编写main函数测试该顺序表类。
Input
第1行先输入n表示有n个数据,即n是实际长度;接着输入n个数据
第2行先输入i表示插入开始的位置,再输入k表示有k个插入数据,接着输入k个数据
第3行先输入i表示删除开始的位置,再输入k表示要删除k个数据
Output
顺序表内容包括顺序表的实际长度和数据,数据之间用空格隔开
第1行输出创建后的顺序表内容
第2行输出执行连续插入后的顺序表内容
第3行输出执行连续删除后的顺序表内容
Sample
#0
Input
Copy
6 11 22 33 44 55 66
2 3 99 88 77
4 5
Output
Copy
6 11 22 33 44 55 66
9 11 99 88 77 22 33 44 55 66
4 11 99 88 66
#include<iostream>
using namespace std;
#define ok 0
#define error -1//顺序表类定义
class seqlist
{
private:int* list; //元素数组int maxsize; //顺序表最大长度int size; //顺序表实际长度
public:seqlist(); //构造函数~seqlist();int list_size(); //获取顺序表的实际长度;bool list_insert(int i, int n); //实现在第i个位置,连续插入来自数组item的n个数据,即从位置i开始插入多个数据。bool list_del(int i); //实现从第i个位置开始,连续删除n个数据,即从位置i开始删除多个数据。bool list_get(int i); //获取第i个位置的元素void list_display(); //输出整个顺序表
};//构造函数
seqlist::seqlist()
{maxsize = 1000;size = 0;list = new int[maxsize];
}
//析构函数
seqlist::~seqlist()
{delete[] list;
}//获取顺序表实际长度int seqlist::list_size() {return size; //私有变量须有函数获取参数
}//实现在第i个位置,连续插入来自数组item的n个数据,即从位置i开始插入多个数据。
bool seqlist::list_insert(int i, int item)
{if (i<1 || i>size + 1){return false;}int j = size; for (j = size; j >i-1; j--){list[j] = list[j - 1];}list[j] = item;size++;return true;
}//删除一个元素
bool seqlist::list_del(int i)
{//判断是不是合法位置iif (i<1 || i>size + 1){return false;}int j;for (j = i - 1; j < size - 1; j++){list[j] = list[j + 1];}size--;return true;
}//获取一个元素
bool seqlist::list_get(int i)
{if (i<1 || i>size){return false;}cout << list[i - 1] << endl;return true;
}//输出列表
void seqlist::list_display()
{cout << size << " ";for (int i = 0; i < size; i++){cout << list[i] << " ";}cout << endl;
}int main()
{//第1行先输入n表示有n个数据,即n是实际长度;接着输入n个数据int n;cin >> n;//创建顺序表seqlist mylist;//接着输入n个数据for (int i = 1; i <= n; i++){int num1;cin >> num1;mylist.list_insert(i, num1); //在第i个位置插入一个数值}// 输出整个顺序表mylist.list_display();//第2行输入从第n的位置开始,插入num个元素//这种办法时间复杂度高,因为每次插入一个元素,这个元素后面的元素都要后移int num;cin >> n >> num;for (int i = n; i < n + num; i++) //循环num次,从位置n开始,每次前一次的基础上插入一个新元素{int s1;cin >> s1;mylist.list_insert(i, s1); //从第n个元素开始每次往后加入一个元素};mylist.list_display();//第3行输入要从第i个元素开始删除k个元素int k;cin >> n >> k;for (int i = n; i < n +k; i++) //循环k次,每次从第n个元素开始删除{mylist.list_del(n);}mylist.list_display();}
上面的那种从第i个开始插入删除其实可以直接封装成下面这种形式,原理一样
从第i个元素开始,插入一个元素,后面的元素依次往后移,再i+1个位置开插入,后面的继续往后移,前提数组空间足够大
void multiinsert(int i, int n, int item[]){for (int p = 0; p < n; p++){list_insert(i + p, item[p]); //将数组的第p个元素插入到从第i个开始后面的位置}}void multidel(int i, int n){for (int p = 0; p < n; p++){list_del(i + 1); //将数组的第p个元素插入到从第i个开始后面的位置}}
相关文章:
c++顺序表(连续插入删除)
Description 建立顺序表的类,属性包括:数组、实际长度、最大长度(设定为1000) 该类具有以下成员函数: 构造函数:实现顺序表的初始化。 插入多个数据的multiinsert(int i, int n, int item[])函数&#x…...
[综述笔记]A Survey on Deep Learning for Neuroimaging-Based Brain Disorder Analysis
论文网址:Frontiers | A Survey on Deep Learning for Neuroimaging-Based Brain Disorder Analysis (frontiersin.org) 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论…...
【C++练级之路】【Lv.16】红黑树(冰与火的碰撞,红与黑的史诗)
快乐的流畅:个人主页 个人专栏:《C语言》《数据结构世界》《进击的C》 远方有一堆篝火,在为久候之人燃烧! 文章目录 引言一、红黑树的概念二、红黑树的模拟实现2.1 结点2.2 成员变量2.3 插入情况一:uncle在左ÿ…...
政安晨:【Keras机器学习实践要点】(三)—— 编写组件与训练数据
政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎机器学习 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 介绍 通过 Keras,您可以编写自定…...
数据库系统概论(超详解!!!) 第四节 关系数据库标准语言SQL(Ⅲ)
1.连接查询 连接查询:同时涉及多个表的查询 连接条件或连接谓词:用来连接两个表的条件 一般格式: [<表名1>.]<列名1> <比较运算符> [<表名2>.]<列名2> [<表名1>.]<列名1> BETWEEN [&l…...
如何使用Python进行网络安全与密码学【第149篇—密码学】
👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 用Python进行网络安全与密码学:技术实践指南 随着互联网的普及,网络…...
应急响应-Web2
应急响应-Web2 1.攻击者的IP地址(两个)? 192.168.126.135 192.168.126.129 通过phpstudy查看日志,发现192.168.126.135这个IP一直在404访问 , 并且在日志的最后几条一直在访问system.php ,从这可以推断 …...
复试专业前沿问题问答合集8-1——CNN、Transformer、TensorFlow、GPT
复试专业前沿问题问答合集8-1——CNN、Transformer、TensorFlow、GPT 深度学习中的CNN、Transformer、TensorFlow、GPT大语言模型的原理关系问答: Transformer与ChatGPT的关系 Transformer 是一种基于自注意力机制的深度学习模型,最初在论文《Attention is All You Need》…...
用Python做一个植物大战僵尸
植物大战僵尸是一个相对复杂的游戏,涉及到图形界面、动画、游戏逻辑等多个方面。用Python实现一个完整的植物大战僵尸游戏是一个大工程,但我们可以简化一些内容,做一个基础版本。 以下是一个简化版的植物大战僵尸游戏的Python实现思路&#…...
Win11文件右键菜单栏完整显示教程
近日公司电脑升级了win11,发现了一个小麻烦事,如下图: 当我想使用svn或git的时候必须要多点一下,这忍不了,无形之中加大了工作量! 于是,菜单全显示教程如下: 第一步:管…...
【Python实用标准库】argparser使用教程
argparser使用教程 1.介绍2.基本使用3.add_argument() 参数设置4.参考 1.介绍 (一)argparse 模块是 Python 内置的用于命令项选项与参数解析的模块,其用主要在两个方面: 一方面在python文件中可以将算法参数集中放到一起&#x…...
伦敦金与纸黄金有什么区别?怎么选?
伦敦金与纸黄金都是与黄金相关的投资品种,近期黄金市场的上涨吸引了投资者的关注,那投资者想开户入场成为黄金投资者应该选择纸黄金还是伦敦金呢?两者有何区别呢?下面我们就来讨论一下。 伦敦金是一种起源于伦敦的标准化黄金交易合…...
化工企业能源在线监测管理系统,智能节能助力生产
化工企业能源消耗量极大,其节能的空间也相对较大,所以需要控制能耗强度,保持更高的能源利用率。 化工企业能源消耗现状 1、能源管理方面 计量能源消耗时,计量器具存在问题,未能对能耗情况实施完全计量,有…...
C/C++ 一些使用网站收集...
C/C 标准 各种语言协议标准文档 open-std.org 网站 C语言标准文档 open-std.org C基金会网站 C/C 标准库网站 c/c 标准库 cplusplus.com 网站 c/c标准库 cppreference.com 网站 C Core Guidelines【isocpp.org】 C/C 发展 C现有状态及未来规划【isocpp.org】...
2024可以搜索夸克网盘的方法
截止2024可以搜索夸克网盘的方法 6miu盘搜 6miu盘搜是一个强大的网盘搜索工具,它汇集了多个网盘平台的资源,包括百度网盘、163网盘、金山快盘等,可以帮助用户快速找到所需的资料。6miu盘搜的一个显著特点是它的资源更新速度快,可以搜索到最新的资源。此外,6miu盘搜的界面清爽…...
2024年最新阿里云服务器价格表_CPU内存+磁盘+带宽价格
2024年阿里云服务器租用费用,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元,ECS u1服务器2核4G5M固定带宽199元一年,2核4G4M带宽轻量服务器一年165元12个月,2核4G服务…...
300.【华为OD机试】跳房子I(时间字符串排序—JavaPythonC++JS实现)
本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四.代码讲解(Ja…...
linux ln Linux 系统中用于创建链接(link)的命令
linux 命令基础汇总 命令&基础描述地址linux curl命令行直接发送 http 请求Linux curl 类似 postman 直接发送 get/post 请求linux ln创建链接(link)的命令创建链接(link)的命令linux linklinux 软链接介绍linux 软链接介绍l…...
mysql按照查询条件进行排序和统计一个字段中每个不同数值出现的次数
1.比如学生表 如何显示查询结果的顺序根据放置的顺序查询 <select id"selectNames" resultType"Student">select * from student_table where 11<if test"studentList! null">and name in<foreach item"item" ind…...
深度学习基础知识
本文内容来自https://zhuanlan.zhihu.com/p/106763782 此文章是用于学习上述链接,方便自己理解的笔记 1.深度学习的网络结构 深度学习是神经网络的一种特殊形式,典型的神经网络如下图所示。 神经元:表示输入、中间数值、输出数值点。例如&…...
3个场景告诉你:为什么你需要PowerToys Text Extractor
3个场景告诉你:为什么你需要PowerToys Text Extractor 【免费下载链接】PowerToys Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows 项目地址: https://gitcode.com/GitHub_Trending/po/PowerToys…...
摒弃传统持卡定位弊端 全方位筑牢井下应急安全屏障
摒弃传统持卡定位弊端 全方位筑牢井下应急安全屏障井下人员定位是矿山安全生产、应急救援、风险管控的核心基础支撑,直接关乎井下作业人员生命安全与矿山安全生产大局。长期以来,传统井下持卡定位模式凭借基础管控作用被广泛应用,但在深井开采…...
通过curl命令快速测试Taotoken不同模型的响应速度与效果
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过curl命令快速测试Taotoken不同模型的响应速度与效果 对于习惯使用命令行工具的技术人员来说,curl是一个直接且高效…...
电脑里突然冒出的FNPLicensingService.exe是啥?手把手教你关闭它(附Adobe/CAD/Xshell等软件排查指南)
电脑里突然冒出的FNPLicensingService.exe是啥?手把手教你关闭它(附Adobe/CAD/Xshell等软件排查指南)当你打开任务管理器,突然发现一个陌生的进程FNPLicensingService.exe在后台运行,甚至频繁请求联网,这难…...
用ChatGPT写投资人邮件:72小时内获3家TS的实测框架(含Prompt工程+合规校验清单)
更多请点击: https://codechina.net 第一章:用ChatGPT写投资人邮件:72小时内获3家TS的实测框架(含Prompt工程合规校验清单) 在融资关键期,一封精准、可信、有温度的投资人邮件,往往比BP更早决定…...
Codex vs. Claude Code:我的发现
“你试过 Codex 搭配 GPT-5.5 了吗?我刚用 40 分钟重建了整个认证模块。上周用 Claude 做同样的事花了三个小时。” 我回复了一句"有意思",然后继续做手头的事。我使用 Claude Code 已近一年,已经围绕它建立了整套工作流——CLAUD…...
OpenWebUI 到底解决了什么,没解决什么?
先说结论OpenWebUI 把多模型切换、对话管理、参数调整从命令行搬到了浏览器,交互体验接近 ChatGPT,但部署本身有硬性前提。免费内网穿透方案有 24 小时域名更换限制,固定域名需付费,远程访问稳定性取决于网络环境。对于只跑单个模…...
百度网盘直链解析:终极免费提速解决方案
百度网盘直链解析:终极免费提速解决方案 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘非会员的龟速下载而烦恼吗?今天我要向你介绍一个…...
DeepSeek多租户告警隔离方案(企业级RBAC+命名空间级告警路由+审计日志溯源)
更多请点击: https://codechina.net 第一章:DeepSeek多租户告警隔离方案(企业级RBAC命名空间级告警路由审计日志溯源) DeepSeek平台面向金融、政企等高合规要求场景,构建了细粒度的多租户告警隔离体系。该方案以企业级…...
在taotoken控制台查看与分析api用量数据的实践心得
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Taotoken控制台查看与分析API用量数据的实践心得 1. 引言 对于任何将大模型API集成到应用或工作流中的开发者或团队而言&#x…...
