Day4顺序表c++代码实现
代码中实现,顺序表的初始化,插入,查找,删除
废话不多说,直接上
#include<iostream>
using namespace std;
#define eleType int
struct SequentialList {eleType* elements;//指针int size;int capacity;//容量
};//定义一个结构体
void initializeList(SequentialList* list, int capacity) {//初始化顺序表list->elements = new eleType[capacity];//申请空间list->size = 0;list->capacity = capacity;
}
void destroyList(SequentialList* list) {//销毁库delete[] list->elements;//使用delete关键字
}
int size(SequentialList* list) {//获取顺序表的大小return list->size;
}
bool isEmpty(SequentialList* list) {//判断顺序表是否为0;return list->size == 0;
}
void insert(SequentialList* list, int index, eleType element) {//顺序表插入if (index<0 || index>list->size) {//判断插入的位置是否合法throw std::invalid_argument("Invalid index");//不合法抛出一个异常}if (list->size == list->capacity) {//判断是否由位置插入int newCapacity = list->capacity * 2;eleType* newElements = new eleType[newCapacity];//新建一个数组for (int i = 0; i < list->size; ++i) {//进行赋值操作newElements[i] = list->elements[i];}delete list->elements;//释放空间list->elements = newElements;//指向新的的空间list->capacity = newCapacity;}for (int i = list->size; i > index; --i) {//实现顺序表后移list->elements[i] = list->elements[i - 1];}list->elements[index] = element;//给index位置赋值list->size++;//size增加
}
void deleteElement(SequentialList* list, int index) {//顺序表的删除操作if (index < 0 || index >= list->size) {//判断删除的位置是否合法throw std::invalid_argument("Invalid index");}for (int i = index; i < list->size - 1; i++) {//将数据进行向前移动list->elements[i] = list->elements[i + 1];}list->size--;//size数值减少
}
int findElement(SequentialList* list, int element) {//顺序表的查找for (int i = 0; i < list->size; ++i) {//遍历比较if (list->elements[i] == element) {return i;//返回i}}return -1;
}
eleType getElement(SequentialList* list, int index) {//获取第index个元素的值if (index < 0 || index >= list->size) {//判断位置是否合法throw std::invalid_argument("Invalid index");//抛出错误}return list->elements[index];//直接给出第index的元素的值
}
void updateElement(SequentialList* list, int index, eleType value) {//修改元素的值if (index < 0 || index >= list->size) {//判断位置是否合法throw std::invalid_argument("Invalid index");//抛出错误}list->elements[index] = value;
}
int main() {SequentialList mylist;initializeList(&mylist, 10);//初始化for (int i = 0; i < 10; ++i) {insert(&mylist, i, i * 10);//插入数据}cout << "Size:" << size(&mylist) << endl;//顺序表的大小cout << "Is empty:" << isEmpty(&mylist) << endl;//判断顺序表是否为空for (int i = 0; i < size(&mylist); ++i) {cout << getElement(&mylist, i) << " ";}cout << endl;deleteElement(&mylist, 5);updateElement(&mylist, 1, 1314);for (int i = 0; i < size(&mylist); ++i) {cout << getElement(&mylist, i) << " ";}cout << endl;int idx = findElement(&mylist, 20);cout << idx << endl;updateElement(&mylist, idx, 520);for (int i = 0; i < size(&mylist); ++i) {cout << getElement(&mylist, i) << " ";}cout << endl;destroyList(&mylist);return 0;
}

相关文章:
Day4顺序表c++代码实现
代码中实现,顺序表的初始化,插入,查找,删除 废话不多说,直接上 #include<iostream> using namespace std; #define eleType int struct SequentialList {eleType* elements;//指针int size;int capacity;//容量…...
将图片转换成base64格式
1.先创建一个canvas对象,然后给canvas对象设置图片对象的宽高,再调用canvas的getContext获取2d上下文对象,再调用上下文对象的drawImage方法,再通过canvase对象的toDataURL方法,将图片转换成base64格式的字符串 2.将b…...
征服ES(ElasticSearch)的慢查询实战
在 Elasticsearch(ES)中,进行大数据查询时,常常会由于多种因素而导致性能显著下降。接下来,我们将深入探讨几种常见情况及其相应的解决方案。 一、常见问题分析 深分页、大排序 大量数据扫描与多分片上的多次排序会严…...
如何才能从普通程序员转行AI大模型?
人工智能已经成为一个非常火的方向。作为一名普通的程序员,该如何转向AI大模型方向。以程序员为例,看看普通程序员如何开启AI大模型之路。 接下来给大家分享一下程序员转大模型的一些注意点: 作为一名程序员,在考虑转行至大模型领…...
【番外】软件设计师中级笔记关于数据库技术更新笔记问题
提问 由于软件设计师中级笔记中第九章数据库技术基础的笔记内容太多,我应该分几期发布呢?还是一期一次性发布完成。 如果分为一期发布,可能需要给我多一些时间,由于markdown格式有所差异,所以我需要部分进行修改与调…...
【代码】约瑟夫问题——故事背景
Hello!大家好,我是学霸小羊,今天先来讲讲约瑟夫问题的背景。 在古罗马时期,犹太历史学家约瑟夫斯领导犹太人反对罗马帝国的统治,并与罗马军队进行激烈的战斗。然而,在罗马军队的围困下,约瑟夫与…...
什么是事件冒泡和事件捕获
文章目录 1. 事件传播机制2. 事件冒泡(Event Bubbling)3. 事件捕获(Event Capturing)4. 事件冒泡和事件捕获的区别5. 阻止事件传播总结 事件冒泡和事件捕获是两种处理网页中事件传播的机制,特别是在 JavaScript 中处理…...
高端优质建站公司具备哪些优势?2024高端建站公司哪家好
从某种程度上讲,一个出色的建站公司需具备将无形的品牌价值巧妙转化为直观视觉元素的能力,这一转化过程极为考究,涵盖了设计的精细程度、色彩运用的巧妙以及空间布局的智慧,这些要素均不容忽视。 接下来考察网站的内容策划能力同…...
word删除空白页 | 亲测有效
想要删掉word里面的末尾空白页,但是按了delete之后也没有用 找了很久找到了以下亲测有效的方法 1. 通过鼠标右键在要删除的空白页面处显示段落标记 2. 在字号输入01,按ENTER(回车键) 3.成功删除了!!...
YashanDB学习-服务启停
YashanDB学习-服务启停 1、查看YashanDB 当前实例状态和数据库名称2、使用 yasboot 工具启停YashanDB3、服务器重启后无法通过yasboot命令运维管理数据库4、正常关闭数据库的方式 数据库安装过程中将实例自动切换成OPEN阶段,并创建名为yashandb的数据库。 1、查看Ya…...
在未排序的整数数组找到最小的缺失正整数
🎁👉点击进入文心快码 Baidu Comate 官网,体验智能编码之旅,还有超多福利!🎁 🔍【大厂面试真题】系列,带你攻克大厂面试真题,秒变offer收割机! ❓今日问题&am…...
TCP连接管理机制:三次握手四次挥手
🍑个人主页:Jupiter. 🚀 所属专栏:Linux从入门到进阶 欢迎大家点赞收藏评论😊 目录 连接管理机制三次握手三次握手的目的三次握手的步骤第一次握手第二次握手第三次握手注意: 为什么建立连接是三次握手&…...
1022. 宠物小精灵之收服
思路 双层dp 代码 #include <bits/stdc.h> using namespace std;const int N 1010, mod 1e9 7;int n, m, k, x, y, z, ans, t; int w[N], f[N][N];void solve() {cin >> n >> m >> k;for (int i 1; i < k; i ){cin >> x >> y;f…...
人工智能生成内容(AI-Generated Content)
此外,ALGC还在影视剧本创作、音乐创作、设计与创意、虚拟助手与聊天机器人、教育与培训、新闻报道与文学创作等领域发挥着重要作用。 三、技术架构 ALGC产业生态体系通常呈现为上中下三层架构: 四、优势与挑战 优势: 挑战: 一、…...
深度学习:强化学习(Reinforcement Learning, RL)详解
强化学习(Reinforcement Learning, RL)详解 强化学习是机器学习的一个重要分支,它涉及到智能体(agent)通过与环境(environment)的交互学习如何做出决策。在强化学习中,智能体在不断…...
C语言笔记20
指针运算 #include <stdio.h>int main() {char ac[] {0,1,2,3,4,5,6,7,8,9,};char *p ac;printf("p %p\n", p);printf("p1%p\n", p1);int ai[] {0,1,2,3,4,5,6,7,8,9,};int *q ai;printf("q %p\n", q);printf("q1%p\n", q1)…...
基于SSM+微信小程序的房屋租赁管理系统(房屋2)
👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的房屋租赁管理系统实现了有管理员、中介和用户。 1、管理员功能有,个人中心,用户管理,中介管理,房屋信息管理ÿ…...
selenium案例——爬取哔哩哔哩排行榜
案例需求: 1.使用selenium自动化爬虫爬取哔哩哔哩排行榜中舞蹈类的数据(包括视频标题、up主、播放量和评论量) 2.利用bs4进行数据解析和提取 3.将爬取的数据保存在本地json文件中 4.保存在excel文件中 分析: 1.请求url地址&…...
HTML5教程(三)- 常用标签
1 文本标签-h 标题标签(head): 自带加粗效果,从h1到h6字体大小逐级递减一个标题独占一行 语法 <h1>一级标题</h1><h2>二级标题</h2><h3>三级标题</h3><h4>四级标题</h4><h5…...
【HCIE-Datacom考试战报】2024-08-21 深圳 SRv6
8月21日深圳考试战报(SRV6) 前言 大家好呀,我是来自誉天的学员---,我是今年4月份开始看集训、备考实验的,但是专业课比较多,又还有其他比赛,所以我刚开始的进度很慢,六月底才进入冲…...
别再只盯着永恒之蓝打靶了!用Metasploit实战MS17-010的5个高阶后渗透技巧
实战MS17-010后渗透:5个提升内网横向移动效率的专业技巧 当Meterpreter会话成功建立后,真正的挑战才刚刚开始。许多安全研究员在渗透测试中往往止步于初始入侵,却忽略了后渗透阶段才是红队演练的核心战场。本文将分享五个经过实战检验的高阶…...
Python try...except ImportError 语句详解
在Python编程中,ImportError 是与模块导入相关的核心异常。优雅地处理它,是编写健壮、可维护和跨平台代码的关键。try...except ImportError 结构正是实现这一目标的标准工具。本文将为你抽丝剥茧,从基础概念到高级实践,全面解析这…...
3步轻松掌握:163MusicLyrics歌词下载完全指南
3步轻松掌握:163MusicLyrics歌词下载完全指南 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为找不到高质量的LRC歌词而烦恼吗?163MusicLyri…...
Kubernetes部署Valheim游戏服务器:云原生架构实践指南
1. 项目概述:当维京英灵殿遇上Kubernetes如果你和我一样,既沉迷于《英灵神殿》(Valheim)里那种与三五好友一起伐木、采矿、建造长屋,然后被巨魔追得满地图跑的原始乐趣,又恰好是一名整天和容器、编排系统打…...
TongWEB(东方通)实战:从零部署企业级WEB前后端项目
1. 环境准备:银河麒麟系统下的基础搭建 在银河麒麟桌面系统V10(SP1)兆芯版上部署企业级WEB项目,环境准备是第一步。我遇到过不少开发者直接跳过环境检查就急着部署,结果浪费大量时间排查兼容性问题。这里分享几个关键点: 首先是系…...
从日志到环境变量:根治 Android Studio AVD 启动报错“The emulator process has terminated”
1. 从错误弹窗到日志分析:定位问题的第一步 当你兴冲冲地打开Android Studio准备启动AVD(Android Virtual Device)时,突然弹出一个冰冷的提示框:"The emulator process has terminated",这感觉就…...
如何在Mac上轻松导出微信聊天记录:WeChatExporter完整指南
如何在Mac上轻松导出微信聊天记录:WeChatExporter完整指南 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因误删重要微信聊天记录而焦虑?…...
Kubernetes原生自动化部署工具Keel:实现容器镜像自动更新的最后一公里
1. 项目概述:什么是Keel,以及它解决了什么问题如果你和我一样,在团队里负责过一段时间的应用部署和更新,那你一定对“发布日”的紧张感深有体会。开发那边代码一提交,这边就得开始手动拉取镜像、更新Kubernetes的Deplo…...
基于GitHub Actions的自动化代码质量守护:CodeBuddy实战指南
1. 项目概述与核心价值最近在和一些团队做代码评审和协作时,我经常遇到一个痛点:大家写的代码风格各异,注释要么缺失要么过时,一些潜在的安全漏洞和性能问题在提交前很难被系统性地发现。虽然市面上有各种静态分析工具,…...
手把手带你激活Matlab2016b:Windows 64位系统下的完整许可配置指南
1. 准备工作:确保激活环境完整 在开始激活Matlab2016b之前,我们需要做好充分的准备工作。首先确认你已经按照官方流程完成了基础安装,并且安装目录下存在完整的文件结构。我遇到过不少朋友因为安装不完整导致后续激活失败的情况,所…...
