利用C语言实现set——手搓set

在 C 语言中,可以使用数组来手动实现 Set(集合)的功能。具体来说,以下是一种简单的在 C 语言中手动实现 Set 的方法:


一、定义数组来存储set元素

首先,定义一个数组来存储 Set 的元素。数组中的每个元素代表一个 Set 中的值。假设我们设置一个最大容量为 MAX_SIZE 的 Set,可以声明一个数组来存储元素:

#define MAX_SIZE 100
int set[MAX_SIZE];

 二、初始化 Set

可以定义一个变量来记录有效元素的个数,并将其初始化为 0。

int size = 0;

三、实现 Set 的常见操作。

  • 添加元素:检查元素是否已经存在于 Set 中,如果不存在,则将元素添加到 Set 的末尾,并递增 size。
  • void addElement(int element) {if (!containsElement(element)) {set[size] = element;size++;}
    }

  • 删除元素:找到元素在 Set 中的位置,如果存在,则将其与 Set 中最后一个元素交换位置,并递减 size。
  • void removeElement(int element) {int i;for (i = 0; i < size; i++) {if (set[i] == element) {set[i] = set[size - 1];size--;break;}}
    }

  • 检查元素是否存在:遍历 Set,检查元素是否与 Set 中的任意一个元素相等。
  • bool containsElement(int element) {int i;for (i = 0; i < size; i++) {if (set[i] == element) {return true;}}return false;
    }
    
  • 获取 Set 的大小:返回 size 变量的值。
  • int getSize() {return size;
    }
  • 清空 Set:将 size 设置为 0,表示 Set 中没有元素。
  • void clearSet() {size = 0;
    }

数组的元素是不能删的,只能覆盖。

所以在删除元素和清空元素时,我们改变的是Set的值。

这一期专栏记录将我每天的刷题,希望各位的监督,也希望和各位共勉。

追光的人,终会光芒万丈!!

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

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

相关文章

CSS 向上扩展动画

上干货 <template><!-- mouseenter"startAnimation" 表示在鼠标进入元素时触发 startAnimation 方法。mouseleave"stopAnimation" 表示在鼠标离开元素时触发 stopAnimation 方法。 --><!-- 容器元素 --><div class"container&q…

SAP VA01 创建带wbs号的销售订单包 CJ067的错误

接口错误提示如下 SAP官方 CJ067 124177 - VA01: CJ067 during WBS acct assgmt with a different business area S4的core 刚好能用上 实施 这个note后成功

引力魔方的操作知识

引力魔方的一些操作以及问题如图所示&#xff1a; 主要包含以下内容&#xff1a; 1.如何搭建计划&#xff1f; 2.创意素材说明&#xff1b; 3.如何出价&#xff1f; 4.如何提高引力魔方点击率&#xff1f; 5.如何优化定向和溢价&#xff1b; 6.冷启动&#xff1a;计划开…

基于WEB的网上购物系统的设计与实现(附:源码 论文 sql文件)

摘 要 随着计算机网络技术的飞速发展和人们生活节奏的不断加快&#xff0c;电子商务技术已经逐渐融入了人们的日常生活当中&#xff0c;网上商城作为电子商务最普遍的一种形式&#xff0c;已被大众逐渐接受。因此开发一个网上商城系统&#xff0c;适合当今形势&#xff0c;更加…

DRF从入门到精通六(排序组件、过滤组件、分页组件、异常处理)

文章目录 一、排序组件继承GenericAPIView使用DRF内置排序组件继承APIView编写排序 二、过滤组件继承GenericAPIView使用DRF内置过滤器实现过滤使用第三方模块django-filter实现and关系的过滤自定制过滤类排序搭配过滤使用 三、分页组件分页器一&#xff1a;Pagination&#xf…

【11】ES6:async/await

一、概念 async/await 是 ES2017&#xff08;ES8&#xff09;的新特性&#xff0c;它是一种基于 Promise 实现的异步编程方式。async/await 也是一种语法糖。 1、async/await 实现了用同步方式来写异步代码&#xff08;promise是链式调用形式写异步代码&#xff09; 2、asyn…

【JavaScript】闭包机制

✨ 专栏介绍 在现代Web开发中&#xff0c;JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性&#xff0c;还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言&#xff0c;JavaScript具有广泛的应用场景&#x…

java设计模式学习之【解释器模式】

文章目录 引言解释器模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用表达式解析示例代码地址 引言 在我们的日常生活中&#xff0c;语言的翻译和理解是沟通的关键。每种语言都有自己的语法规则&#xff0c;而翻译人员和计算机程序需要理解并遵循这些规则来…

LeetCode75| 队列

目录 933 最近的请求次数 649 Dota2 参议院 933 最近的请求次数 class RecentCounter { public:queue<int>st;RecentCounter() {}int ping(int t) {st.push(t);while(t - st.front() > 3000)st.pop();return st.size();} };时间复杂度O(1) 空间复杂度O(n)//n为队列…

手写Promise

目录 前言 状态 使用方法 构造函数 对象 结论 第一阶段 搭建基本结构 思路 代码实现 测试一下 实现then方法获取异步值 思路 改造代码如下 测试一下 成功场景 失败场景 实现类的resolve,reject以及catch方法 思路 代码实现 测试一下 第一阶段总结 第二阶…

《PCI Express体系结构导读》随记 —— 第I篇 第1章 PCI总线的基本知识(11)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第I篇 第1章 PCI总线的基本知识&#xff08;10&#xff09; 1.3 PCI总线的存储器读写总线事务 1.3.2 Posted和Non-Posted传送方式 PCI总线规定了两类数据传送方式&#xff0c;分别是Posted和Non-Posted数据传送…

关于Redis面试题

前言 之前为了准备面试&#xff0c;收集整理了一些面试题。 本篇文章更新时间2023年12月27日。 最新的内容可以看我的原文&#xff1a;https://www.yuque.com/wfzx/ninzck/cbf0cxkrr6s1kniv Redis 是什么 全名&#xff1a;远程字典服务。这是一个开源的在内存中的数据结构存…

硅像素传感器文献调研(二)

写在前面&#xff1a;从上篇文章的参考文献中看到一篇文献&#xff0c;现在也精读一下&#xff0c;今天还有一个任务是把上篇文献整体脉络用流程图的形式完整梳理一下。 哈哈哈哈哈哈&#xff1a;代表没太搞明白的部分 如何写论文&#xff1a; 引言部分&#xff1a;基础理论…

vue3 引入腾讯地图解决请求接口https://apis.map.qq.com/ws/place/v1/suggestion跨域问题

试过npm i vue-jsonp不行&#xff0c;然后重新试了这个办法解决了 index.html 中引入 <script charset"utf-8" src"https://map.qq.com/api/gljs?v1.exp&key自己申请的key"></script> 重写 jsonp&#xff0c;就不用在项目中安装 jsonp …

基于UOS python pyqt5开发声卡回路测试程式

1. 环境准备 首先&#xff0c;确保你的UOS系统中安装了Python和PyQt5。 安装Python&#xff1a;大多数Linux发行版都预装了Python。你可以通过在终端运行 python3 --version 来检查Python版本。 安装PyQt5&#xff1a;通过运行 sudo apt-get install python3-pyqt5 来安装Py…

Python入门知识点分享——(十一)if条件语句

if条件语句是一种编程语言中用于控制程序流程的结构。它根据一个条件的真假来决定执行不同的代码块。 if条件语句通常由if关键字、一个条件表达式和一个代码块组成。条件表达式可以是一个返回布尔值的表达式&#xff0c;如果条件为真&#xff0c;则执行代码块中的代码&#xf…

day30 回溯(06)【今天没做题,简单记录一下日程与感想】

day30 代码随想录 2023.12.28 今天确实事情有些多&#xff0c;项目汇报&#xff0c;还有一个C单子的交付。并且临近考试&#xff0c;本来想着现在晚上十点多打卡学习&#xff0c;但一看&#xff0c;三道有难度的题&#xff0c;时间不够了&#xff0c;直接劝退&#xff0c;所以…

数据库系统原理例题之——数据库系统概述

第一章 数据库系统概述 第一章 数据库系统概述【例题】一 、单选题二 、填空题三 、简答题 【答案&解析】一、单选题二、填空题三、简答题 【延伸知识点】【延伸知识点答案&解析】 第一章 数据库系统概述 【例题】 一 、单选题 1.数据库管理系统的英文缩写是( ) A.D…

01_软件测试

01_软件测试 学习目标 1、能复述软件测试的定义 2、能说出7种测试分类的区别 3、能说出质量模型的重点5项 4、能说出测试流程的6个步骤 5、能说出测试模板8个要素 认识软件及测试 什么是软件 软件&#xff1a;控制计算机硬件工作的工具 软件的基本组成 软件生产过程 什么是软…

vue多条数据渲染(带图片)

我在这用的为接口数据&#xff1a; 先调用接口获取需要的数据: 然后用&#xff1a;data绑定需要渲染的数据&#xff1b;&#xff08;记得包裹在<el-table>标签中&#xff09; 然后以此循环渲染数据&#xff1b;那怎么渲染出来图片呢&#xff1f; 在<el-table-column…