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月份开始看集训、备考实验的,但是专业课比较多,又还有其他比赛,所以我刚开始的进度很慢,六月底才进入冲…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
