第3周实践项目3 求集合并集

2024-03-04 03:48
文章标签 实践 项目 集合 并集

本文主要是介绍第3周实践项目3 求集合并集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

main.cpp

#include "list.h"
#include <stdio.h>
void unionList(SqList *LA, SqList *LB, SqList *&LC)
{int lena,i;ElemType e;InitList(LC);for (i=1; i<=ListLength(LA); i++) //将LA的所有元素插入到Lc中{GetElem(LA,i,e);ListInsert(LC,i,e);}lena=ListLength(LA);         //求线性表LA的长度for (i=1; i<=ListLength(LB); i++){GetElem(LB,i,e);         //取LB中第i个数据元素赋给eif (!LocateElem(LA,e)) //LA中不存在和e相同者,插入到LC中ListInsert(LC,++lena,e);}
}
//用main写测试代码
int main()
{SqList *sq_a, *sq_b, *sq_c;ElemType a[6]= {5,8,7,2,4,9};CreateList(sq_a, a, 6);printf("LA: ");DispList(sq_a);ElemType b[6]= {2,3,8,6,0};CreateList(sq_b, b, 5);printf("LB: ");DispList(sq_b);unionList(sq_a, sq_b, sq_c);printf("LC: ");DispList(sq_c);return 0;
}
list.h

#ifndef LIST_H_INCLUDED
#define LIST_H_INCLUDED#define MaxSize 50
typedef int ElemType;
typedef struct
{ElemType data[MaxSize];int length;
} SqList;
void CreateList(SqList *&L, ElemType a[], int n);//用数组创建线性表
void InitList(SqList *&L);//初始化线性表InitList(L)
void DestroyList(SqList *&L);//销毁线性表DestroyList(L)
bool ListEmpty(SqList *L);//判定是否为空表ListEmpty(L)
int ListLength(SqList *L);//求线性表的长度ListLength(L)
void DispList(SqList *L);//输出线性表DispList(L)
bool GetElem(SqList *L,int i,ElemType &e);//求某个数据元素值GetElem(L,i,e)
int LocateElem(SqList *L, ElemType e);//按元素值查找LocateElem(L,e)
bool ListInsert(SqList *&L,int i,ElemType e);//插入数据元素ListInsert(L,i,e)
bool ListDelete(SqList *&L,int i,ElemType &e);//删除数据元素ListDelete(L,i,e)#endif // LIST_H_INCLUDED
#endif
list.cpp
#include <stdio.h>
#include <malloc.h>
#include "list.h"
//用数组创建线性表
void CreateList(SqList *&L, ElemType a[], int n)
{int i;L=(SqList *)malloc(sizeof(SqList));//注意c语言的开辟动态内存的格式for (i=0; i<n; i++)L->data[i]=a[i];L->length=n;
}
//初始化线性表InitList(L)
void InitList(SqList *&L)   //引用型指针
{L=(SqList *)malloc(sizeof(SqList));//分配存放线性表的空间L->length=0;
}//销毁线性表DestroyList(L)
void DestroyList(SqList *&L)
{free(L);//值得借鉴的
}//判定是否为空表ListEmpty(L)
bool ListEmpty(SqList *L)
{return(L->length==0);//为空时返回1
}//求线性表的长度ListLength(L)
int ListLength(SqList *L)
{return(L->length);
}//输出线性表DispList(L)
void DispList(SqList *L)
{int i;if (ListEmpty(L))return;for (i=0; i<L->length; i++)printf("%d ",L->data[i]);printf("\n");
}//求某个数据元素值GetElem(L,i,e)
bool GetElem(SqList *L,int i,ElemType &e)//引用,e
{if (i<1 || i>L->length)  return false;e=L->data[i-1];return true;
}//按元素值查找LocateElem(L,e)
int LocateElem(SqList *L, ElemType e)
{int i=0;while (i<L->length && L->data[i]!=e) i++;if (i>=L->length)  return 0;else  return i+1;
}//插入数据元素ListInsert(L,i,e)
bool ListInsert(SqList *&L,int i,ElemType e)
{int j;if (i<1 || i>L->length+1)return false;   //参数错误时返回falsei--;            //将顺序表逻辑序号转化为物理序号for (j=L->length; j>i; j--) //将data[i..n]元素后移一个位置L->data[j]=L->data[j-1];L->data[i]=e;           //插入元素eL->length++;            //顺序表长度增1return true;            //成功插入返回true
}//删除数据元素ListDelete(L,i,e)
bool ListDelete(SqList *&L,int i,ElemType &e)
{int j;if (i<1 || i>L->length)  //参数错误时返回falsereturn false;i--;        //将顺序表逻辑序号转化为物理序号e=L->data[i];for (j=i; j<L->length-1; j++) //将data[i..n-1]元素前移L->data[j]=L->data[j+1];L->length--;              //顺序表长度减1return true;              //成功删除返回true
}



这篇关于第3周实践项目3 求集合并集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/771909

相关文章

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

SpringBoot项目是如何启动

启动步骤 概念 运行main方法,初始化SpringApplication 从spring.factories读取listener ApplicationContentInitializer运行run方法读取环境变量,配置信息创建SpringApplication上下文预初始化上下文,将启动类作为配置类进行读取调用 refresh 加载 IOC容器,加载所有的自动配置类,创建容器在这个过程

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免

2. 下载rknn-toolkit2项目

官网链接: https://github.com/airockchip/rknn-toolkit2 安装好git:[[1. Git的安装]] 下载项目: git clone https://github.com/airockchip/rknn-toolkit2.git 或者直接去github下载压缩文件,解压即可。