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

news2025/1/13 7:27:39
建立顺序表的类,属性包括:数组、实际长度、最大长度(设定为 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);
		}//初始化数组
			
		list_display();
	}
	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)<<" ";
		}
		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++;
			}

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

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

相关文章

vue 脚手架 入门 记录

vue 脚手架 入门 记录 以管理员身份运行PowerShell执行&#xff1a;get-ExecutionPolicy&#xff0c;回复Restricted&#xff0c;表示状态是禁止的 3.执行&#xff1a;set-ExecutionPolicy RemoteSigned 4.选择Y 注意&#xff1a;一定要以管理员的身份运行PowerShell&#xff…

Verilog功能模块——标准FIFO转FWFT FIFO

前言 在使用FIFO IP核时&#xff0c;我更喜欢使用FWFT(First Word First Through) FIFO而非标准FIFO&#xff0c;FWFT FIFO的数据会预先加载到dout端口&#xff0c;当empty为低时数据就已经有效了&#xff0c;而rd_en信号是指示此FIFO更新下一个数据&#xff0c;这种FWFT FIFO的…

【Linux基础】第30讲 Linux用户和用户组权限控制命令(二)

1&#xff09;sudo命令 sudo是Linux系统管理指令&#xff0c;是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具&#xff0c;如halt,reboot,su等等&#xff0c;这样不仅减少了root用户的登录和管理时间&#xff0c;同样也提高了安全性。 2&#xff09;修改配置…

Grafana设置默认主页

点击【设置/管理】-> 【默认首选项 Preferences】-> 【主页仪表盘】 在下拉中选择一个页面作为主页即可

山西电力市场日前价格预测【2023-09-22】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-09-22&#xff09;山西电力市场全天平均日前电价为322.75元/MWh。其中&#xff0c;最高日前电价为386.53元/MWh&#xff0c;预计出现在06: 45。最低日前电价为237.40元/MWh&#xff0c;预计…

Java高级-动态代理

动态代理 1.介绍2.案例 1.介绍 public interface Star {String sing(String name);void dance(); }public class BigStar implements Star{private String name;public BigStar(String name) {this.name name;}public String sing(String name) {System.out.println(this.name…

一个不怎么成功的三级菜单

三级菜单制作&#xff0c;菜单焦点总是消失&#xff0c;等发现好的再写一篇 发现 ​ 父元素设置了display:flex时&#xff0c;子元素中的display:none或者display:block就会失效。这是因为display:flex的优先级高于display:none和display:block&#xff0c;使他们的作用失效了。…

Map<K,V>的使用和List学习

Map Map是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例化子类有关。对于静态类型的查找来说&#xff0c;一般直接遍历或者用二分查找【不会对区间进行插入和删除操作】 而在现实生活中的查找比如&#xff1a; 根据姓名查询考试成绩通讯录…

RISC-V Reader 笔记(七)RV64,特权架构,未来可选扩展

RV64 比起 RV32&#xff0c;其实扩展不多。 主要是添加了一系列字&#xff0c;双字为单位的操作。 各个 ISA 32 64比较 x86&#xff1a;变量都存在寄存器里&#xff0c;不像 32 存在内存里&#xff0c;因此指令数少很多&#xff0c;但是因此添加了很多新操作码来操作更多的寄…

ctfshow web入门(2)

web11 打开这个网站&#xff0c;到网站诊断分析模块 搜索域名 web12 提示 有时候网站上的公开信息&#xff0c;就是管理员常用密码 打开&#xff0c;就是个购物网站 因为昨天刚做robots.txt 我就搜了一下 真的有&#xff0c;提示admin这个页面 访问一下&#xff0c;userna…

PTE阅读写作讲解

目录 FIB-R和FIB-R想要拿到65分以上的正确率要达到百分之75以上 1.通过因果关系猜词 2.通过同义词和反义词的关系猜词 3.通过定义或释义关系来推测词义 WE 只需要背一个万能模版就可以了&#xff08;160&#xff09; 只需要保证语法正确就可以了 文本中的实词不能出现第…

阿里云视频点播服务视频地址浏览器打开失效问题记录

我这边的视频都是存储到阿里云视频点播服务中,访问方式都是移动端通过api接口访问视频.现在需要从浏览器直接访问,上传视频成功之后,可以正常打开,但是过段时间地址就显示无法访问,具体显示内容为: 很明显,是视频地址失效了,以下是处理方式: 1.修改视频关联的存储桶读取权限,修…

1334. 阈值距离内邻居最少的城市

1334. 阈值距离内邻居最少的城市 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a;DijkstraDijkstra_小顶堆Floyd_martix方法 原题链接&#xff1a; 1334. 阈值距离内邻居最少的城市 https://leetcode.cn/problems/find-the-city-with-th…

排序算法的奥秘:JAVA中的揭秘与实现

冒泡排序(Bubble Sort)是一种简单的排序算法&#xff0c;它通过多次迭代比较和交换相邻的元素来排序一个数组。每次迭代&#xff0c;较大的元素会逐渐"冒泡"到数组的末尾。以下是Java中实现冒泡排序的示例代码&#xff1a; public class BubbleSort { public sta…

【数据结构】链表的学习和介绍

前言 今天&#xff0c;我们来学习&#xff0c;数据结构中的链表 链表是什么 链表&#xff0c;就是多个结构体变量之间&#xff0c;通过结构体指针连接在一起的一种数据结构 提示&#xff1a; 本篇文章主要讲解动态链表&#xff0c;对于静态链表不做过多介绍 链表的分类 链…

ESP8266 WiFi物联网智能插座—硬件功能

目录 1、控制器板 2、采集器板 2.1、电源设计 2.2、控制器设计 2.3、电量采集电路设计 2.4、按键和LED指示灯设计 ESP8266 WiFi物联网智能插座的硬件功能主要包括两部分&#xff1a;控制器板和采集器板。 焊接成品效果如下图所示&#xff1a; 1、控制器板 控制器板是ES…

PAT 1029 旧键盘

PAT 1029 旧键盘 题目描述思路讲解代码展示 题目描述 思路讲解 分析&#xff1a;用string的find函数&#xff5e;遍历字符串s1&#xff0c;当当前字符s1[i]不在s2中&#xff0c;它的大写也不在ans中时&#xff0c;将当前字符的大写放入ans中&#xff0c;最后输出ans字符串即可…

阿里巴巴商品详情接口

阿里巴巴商品详情接口是阿里巴巴API接口的一种&#xff0c;可获取到商品链接、商品ID、商品标题、商品价格、品牌名称、店铺昵称、sku规格、sku属性、发货地、详情属性、店铺信息等参数&#xff0c;接口对接可适用于选品上架、数据分析、代购商城建站、erp系统商品数据选品、价…

怒刷LeetCode的第10天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一&#xff1a;两次拓扑排序 第二题 题目来源 题目内容 解决方法 方法一&#xff1a;分治法 方法二&#xff1a;优先队列&#xff08;Priority Queue&#xff09; 方法三&#xff1a;迭代 第三题 题目来源 题目内容…

浙江大学《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作——2023学生开学季辉少许

浙江大学《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作——2023学生开学季辉少许