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

C++数据结构题:DS 顺序表--连续操作

建立顺序表的类,属性包括:数组、实际长度、最大长度(设定为 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 Input

6 11 22 33 44 55 66
2 3 99 88 77
4 5

 Sample Output

6 11 22 33 44 55 66

9 11 99 88 77 22 33 44 55 66
4 11 99 88 66

 AC代码:

#include<iostream>
#include <cstring>
using namespace std;
#define ok 0
#define error -1
// 顺序表类定义
class SeqList
{
private:int* list; // 元素数组int maxsize; // 顺序表最大长度int size; // 顺序表实际长度
public:SeqList(); // 构造函数~SeqList(); // 析构函数void set(int length) {this->size = length;for (int i = 0; i < length; i++) {cin >> *(list + i);}//初始化数组}void multiinsert(int i, int n, int item[]) {for (int j = size - 1; j >= i - 1; j--) {*(list + n + j) = *(list + j);}for (int j = i - 1, k = 0; j < i + n - 1; j++, k++) {*(list + j) = item[k];}size += n;cout << size << " ";list_display();}void multidel(int i, int n) {for (int j = i + n - 1; j < size + n; j++) {*(list + j - n ) = *(list + j);}size -= n;cout << size << " ";list_display();}void list_display() {for (int i = 0; i < size; i++) {cout << *(list + i);if (i != size - 1) {cout << " ";}}cout << endl;}; // 输出整个顺序表
};
SeqList::SeqList()
{maxsize = 1000;size = 0;list = new int[maxsize];
}
SeqList::~SeqList()
{delete[]list;
}int main() {int n;cin >> n;SeqList p;p.set(n);int i;int k;cin >> i >> k;int a[1000];for (int j = 0; j < k; j++) {cin >> a[j];}p.multiinsert(i, k,a);cin >> i >> k;p.multidel(i, k);return 0;
}

添加数据有三种方法:

for (int j = size - 1; j >= i - 1; j--) {*(list + n + j) = *(list + j);
}
for (int j = i - 1, k = 0; j < i + n - 1; j++, k++) {*(list + j) = item[k];
}

 

int a[1000];
for (int j = 0; j < size; j++) {a[j] = *(list + j);
}
for (int j = i - 1; j < i - 1 + n ; j++) {*(list + j) = item[j - i + 1];
}
for (int j = i + n - 1; j < size + n; j++) {*(list + j) = *(a + j - n );
}

 

 

for(int k=n-1;k>=0;k--){for(int j = size; j >i-1 ;j--){list[j]=list[j-1];	}list[i-1]=item[k];size++;}

相关文章:

C++数据结构题:DS 顺序表--连续操作

建立顺序表的类&#xff0c;属性包括&#xff1a;数组、实际长度、最大长度&#xff08;设定为 1000 &#xff09; 该类具有以下成员函数&#xff1a; 构造函数&#xff1a;实现顺序表的初始化。 插入多个数据的 multiinsert(int i, int n, int item[]) 函数&#xff0c;实…...

DM@命题公式@主范式的性质和应用@数理逻辑解决数字电路全加器问题

文章目录 abstract主合取范式与主析取范式间的关系&#x1f47a;主范式存在及唯一性定理例 主范式的性质&#x1f47a;求公式的成真与成假赋值主析取范式直接得到主合取范式 判断公式的类型 n n n元命题公式的主析取范式(主合取范式)的个数判断两个命题公式是否等值 给出一个满…...

基于微信小程序+Springboot线上租房平台设计和实现【三端实现小程序+WEB响应式用户前端+后端管理】

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…...

Xilinx FPGA 7系列 GTX/GTH Transceivers (2)--IBERT

IBERT GTX IBERT核心提供了基础广泛的物理介质附件(PMA)评估7系列FPGA GTX收发器的演示平台。可参数化以使用不同GTX收发器和时钟拓扑,IBERT核心也可以定制使用不同的线速率、参考时钟速率和逻辑宽度。数据模式生成器和每个所需的GTX收发器都包含了检查程序,给出了几个不同…...

Python 文件介绍和正则表达式

文章目录 Python 文件和正则表达式文件打开文件读取文件直接读取 read()&#xff1a;逐行读取采用 **for** 循环&#xff1a;采用 readlines()&#xff1a; 正则表达式匹配规则re 模块match 方法&#xff1a;search 方法group 方法split 方法编译&#xff1a;compile 方法 Pyth…...

ueditor百度富文本编辑器粘贴后html丢失class和style样式

问题 项目经理从123在线编辑上排版好的文章&#xff0c;粘贴到项目的编辑器上&#xff0c;样式完全乱了, 排版是这样的&#xff1a; 复制到ueditor后的格式&#xff1a; 这天差地别呀&#xff0c;于是打开代码模式&#xff0c;发现section的属性全没了 但是&#xff0c;sp…...

人脸自动贴国旗

&#xff08;一&#xff09;简介 国庆快到了&#xff0c;每年这个时候&#xff0c;大家的头像都会贴上国旗水印&#xff0c;然后我就像这刚好可以用opencv dilb实现一个简单的自动将国旗贴在人脸上&#xff0c;刚好配合gradio写一个简单的demo gradio官方文档 &#xff08;…...

异步FIFO设计

1 FIFO简介 FIFO的本质是RAM&#xff0c;具有先进先出的特性。 FIFO的基本使用原则&#xff1a;空时不能读&#xff0c;满时不能写 FIFO的两个重要参数&#xff1a;宽度和深度 FIFO的两种类型&#xff1a; 同步FIFO&#xff1a;读写时钟相同&#xff0c;通常用来做数据缓存…...

学习python和anaconda的经验

PYTHON 1 常用命令 1.1 1.1 注释 Python注释多行的方法有以下三种:使用ctrl+/实现多行注释、在每一行的开头使用shift+#键、输入’‘’ ‘’或者"“” “”",将要注释的代码插在中间 1.2 def init( ):函数 区分两个函数: 1.def init(self): 这种形式在__init_…...

【Linux】多线程【上】

文章目录 前言1、Linux线程概念1-1、什么是线程&#xff1f;1-1-1、如何看待页表1-1-2、回顾进程地址空间1-1-3、页表怎么进行虚拟地址到物理地址的映射的&#xff1f;1-1-4、Linux中线程的概念&#xff08;重点&#xff09;1-1-5、原生线程库1-1-6、代码测试1-1-7、知识点&…...

生成式人工智能在高等教育 IT 中的作用

作者&#xff1a;Jared Pane 通过将你大学的数据与公共 LLMs 和 Elasticsearch 安全集成来找到你需要的答案。 根据 2023 年 4 月 EDUCAUSE 的一项调查&#xff0c;83% 的受访者表示&#xff0c;生成式人工智能将在未来三到五年内深刻改变高等教育。 学术界很快就询问和想象生…...

黑龙江省DCMM认证、CSMM认证、CMMM认证、知识产权等政策奖励

2023年8月28日 为深入落实党的二十大精神&#xff0c;认真落实省第十三次党代会关于创新龙江建设的部署要求&#xff0c;全面贯彻新发展理念&#xff0c;融入和服务构建新发展格局&#xff0c;实施创新驱动发展战略&#xff0c;着力建设创新龙江&#xff0c;不断塑造振兴发展新…...

腾讯云2023年云服务器优惠活动价格表

腾讯云经常推出各种云产品优惠活动&#xff0c;为了帮助大家更好地了解腾讯云服务器的价格和优惠政策&#xff0c;下面给大家分享腾讯云最新云服务器优惠活动价格表&#xff0c;助力大家轻松上云&#xff01; 一、轻量应用服务器优惠活动价格表 1、轻量应用服务器&#xff1a;…...

Sleuth--链路追踪

1 链路追踪介绍 在大型系统的微服务化构建中&#xff0c;一个系统被拆分成了许多模块。这些模块负责不同的功能&#xff0c;组合成系统&#xff0c;最终可以提供丰富的功能。在这种架构中&#xff0c;一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上&…...

MyBatis初级

文章目录 一、mybatis1、概念2、JDBC缺点2.1、之前jdbc操作2.2 、原始jdbc操作的分析 3、mybatis的使用3.1、导入maven依赖3.2、新建表3.3、实体类3.4、编写mybatis的配置文件3.5、编写接口 和 映射文件3.6、编写测试类3.7、注意事项 4、代理方式开发5、mybatis和spring整合5.1…...

Spring 学习(二)AOP

一、什么是AOP Aspect Oriented Programming&#xff0c;即面向切面编程。对一个大型项目的代码而言&#xff0c;整个系统要求关注安全检查、日志、事务等功能&#xff0c;这些功能实际上“横跨”多个业务方法。在一般的OOP编程里&#xff0c;需要在每一个业务方法内添加相关非…...

笔记1.1 计算机网络基本概念

计算机网络是通信技术与计算机技术紧密结合的产物 通信系统模型&#xff1a; 计算机网络是一种通信网络 计算机网络是互连的、自洽的计算机集合。 互连&#xff1a;互联互通 自洽&#xff1a;无主从关系 通过交换网络互连主机 Internet&#xff1a;数以百万计的互连的计算设…...

液压切管机配套用液压泵站比例阀放大器

液压切管机配套用液压泵站是液压系统的动力源&#xff0c;可按机械设备工况需要提供一定压力、流量和清洁度的工作介质。它由泵组、油箱组件、控温组件、滤油器组件及蓄能器组件等组合而成&#xff0c;液压泵站主要服务于大型管道工程。...

C++ Primer Plus 第七章笔记

目录 函数基本知识 没有返回值的函数&#xff1a;void函数 有返回值的函数&#xff1a; 函数原型 1.为什么需要函数原型&#xff1f; 2.函数原型的语法 3.函数原型的功能 按值传递函数参数 形参和实参 局部变量 参数问题 使用const指针参数 调用自身的函数&#xf…...

常用数据库的 API - 开篇

API API 这个词在大多数人看来可能和 CNS 差不多&#xff0c;前者天天听说就是用不上&#xff0c;后者天天读就是发不了。 不过&#xff0c;通过今天的一个简短介绍&#xff0c;今后 API 这个东西你就用上了&#xff0c;因为在文章最后我将会展示一个最最基础且高频的 API 使…...

Python自动化脚本:模拟鼠标键盘输入保持系统活跃状态

1. 项目概述&#xff1a;当你的电脑需要“假装在线”你有没有遇到过这样的场景&#xff1a;公司要求电脑必须保持在线状态&#xff0c;否则会被判定为“离开”或“闲置”&#xff0c;影响考勤或系统状态&#xff1b;或者&#xff0c;你在运行一个需要持续交互的软件&#xff0c…...

Halcon局部阈值分割避坑指南:dyn_threshold与var_threshold到底怎么选?

Halcon局部阈值分割避坑指南&#xff1a;dyn_threshold与var_threshold到底怎么选&#xff1f; 在工业视觉检测中&#xff0c;遇到反光金属表面的划痕识别或明暗不均背景下的轮廓定位时&#xff0c;全局阈值分割往往力不从心。Halcon提供的dyn_threshold和var_threshold两个局部…...

无线TDoA定位中的硬件偏差问题与DTB校准方法

1. 无线TDoA定位中的硬件偏差问题解析在无线定位领域&#xff0c;时间差到达&#xff08;Time Difference of Arrival, TDoA&#xff09;技术因其能够消除接收机时钟偏差而备受青睐。然而&#xff0c;这项技术在实际应用中面临一个关键挑战&#xff1a;节点硬件引入的系统性偏差…...

Syzygy-of-Thoughts:用代数几何思想提升大语言模型推理能力

1. 项目概述&#xff1a;当大语言模型遇上代数几何如果你最近在折腾大语言模型&#xff08;LLM&#xff09;的推理能力提升&#xff0c;大概率听说过“思维链”&#xff08;Chain of Thought, CoT&#xff09;和“自洽性”&#xff08;Self-Consistency, CoT-SC&#xff09;这些…...

FastAPI多智能体开发:AI团队自动化后端工程实践

1. 项目概述&#xff1a;当AI智能体成为你的专属FastAPI工程团队如果你是一名后端开发者&#xff0c;尤其是使用FastAPI框架的&#xff0c;那么你一定经历过这样的场景&#xff1a;产品经理或你自己灵光一现&#xff0c;需要一个新功能&#xff0c;比如“给文章加个评论系统”。…...

C++多线程编程:深入剖析std::thread的使用方法

一、线程std::thread简介std::thread 是 C11 中引入的一个库&#xff0c;用于实现多线程编程。它允许程序创建和管理线程&#xff0c;从而实现并发执行。std::thread 在 #include<thread>头文件中声明&#xff0c;因此使用 std::thread 时需要包含 #include<thread>…...

147.YOLOv8 vs YOLOv5 核心差异 + 缺陷检测完整代码,从原理到落地一步到位

摘要 YOLO(You Only Look Once)系列算法是目标检测领域最具影响力的单阶段检测模型。本文从零开始,系统讲解YOLOv8的核心原理与完整实践流程。通过一个工业级缺陷检测案例,覆盖从数据准备、模型训练、评估到部署的全链路。所有代码均基于Ultralytics官方库实现,确保可复现…...

终极指南:使用boardgame.io实现Web与移动端完美同步的游戏开发

终极指南&#xff1a;使用boardgame.io实现Web与移动端完美同步的游戏开发 【免费下载链接】boardgame.io State Management and Multiplayer Networking for Turn-Based Games 项目地址: https://gitcode.com/gh_mirrors/bo/boardgame.io &#x1f680; boardgame.io 是…...

终极指南:如何快速掌握Clean Code PHP编码规范提升团队协作效率

终极指南&#xff1a;如何快速掌握Clean Code PHP编码规范提升团队协作效率 【免费下载链接】clean-code-php :bathtub: Clean Code concepts adapted for PHP 项目地址: https://gitcode.com/gh_mirrors/cl/clean-code-php 在PHP开发中&#xff0c;编写清晰、可维护的代…...

DDR内存RAS技术:原理、实现与优化实践

1. DDR内存RAS技术概述在现代计算架构中&#xff0c;内存子系统承担着数据暂存与高速交换的关键职能。随着DDR4/5内存接口速率突破6400MT/s&#xff0c;以及半导体工艺进入10nm以下节点&#xff0c;内存系统的可靠性&#xff08;Reliability&#xff09;、可用性&#xff08;Av…...