第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 求集合并集相关推荐
- 第八周实践项目9 算法库——广义表
/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目9- *作 者:邵雪源 *完成日期:2017年12月14日 *版 ...
- 第五周实践项目7 后缀表达式
基于栈结构,将中缀表达式转换为后缀表达式的算法步骤是: 初始化运算符栈op; 将'='进栈; 从exp读取字符ch; while (ch!='\0') { if (ch不为运算符) 将后续的 ...
- 第3周 实践项目2 建设”顺序表“算法库(可参考为模板)
/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目2 -建设"顺序表算法库" *作 者:邵雪源 ...
- 线性表【项目 - 求集合并集C语言】(带注释)
#include <stdio.h> #define MAXSIZE 50 //您也可以使用 typedef 来为用户自定义的数据类型取一个新的名字.例如,您可以对结构体使用 typede ...
- 线性表【项目 - 求集合并集C语言】
#include <stdio.h> #define MAXSIZE 50 //您也可以使用 typedef 来为用户自定义的数据类型取一个新的名字.例如,您可以对结构体使用 typede ...
- 2015级C++第2周实践项目
[项目1 - 宣告"主权"] 你已经是CSDN博客主了,用IT人特有的方式,编一段程序.在屏幕上输出你想说的话.按要求公布博文,作为我们的开山之作. [项目2 - 胖子不想说体重] ...
- 2015级C++第3周实践项目
[项目1:个人所得税计算器] 编写选择结构程序,输入个人月收入总额,计算出他本月应缴税款和税后收入(计算办法见附:关于个人所得税的有关背景知识). (1)自选if语句的嵌套或/和switch语句完成程 ...
- 2015级C++第14周实践项目 模板
[项目1-排序函数模板] 已知 void Sort(int a[],int size); void Sort(double a[],int size); 是一个函数模板的两个实例,其功能是将数组a中的 ...
- 第八周实践项目7 对称矩阵的压缩存储及基本运算
/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目7- *作 者:邵雪源 *完成日期:2017年12月14日 *版 ...
最新文章
- 不重启JVM,替换掉已经加载的类,偷天换日?
- 提供openssl -aes-256-cbc兼容加密/解密的简单python函数
- 科学与计算matlab单元测试,mooc现代科学运算—MATLAB语言与应用单元测试答案
- 小程序 | 使用 npm 模块配置 Vant Weapp 框架
- mysql 创建索引 key_Mysql中创建索引的INDEX和KEY
- [AutoSAR]NXP HS12(X) AUTOSAR MCAL编译一下
- 凌云一周看点 | 什么是云原生数据库;因云而生的云原生网络;大型团队如何从0到1自建SRE体系;空间数据模型之从CAD到BIM...
- 百度 71 个炸天的开源项目!你知道几个?--ECharts UMeditor Ueditor ZRender
- MySQL redhat7 安装mysql8
- html 点击展开全部,纯CSS实现点击展开全文功能
- 主配线区(MDA)、水平配线区(HDA)和设备配线区(EDA)预端接布线方案
- javascript 表单提交和验证的方法
- 阿里云商标自助注册申请快速入门(详细步骤和教程)
- Python-F.softmax(dim)中dim使用理解
- 腾讯微信客服电话号码是多少呢/腾讯微信人工服务热线
- Java操作MongoDB数据库(简明版)
- 《调色师手册:电影和视频调色专业技法(第2版)》——第1章 调色的工作流程 我要为电影院(电影)、广播(电视),还是网络调色?...
- WindML、FreeType和TrueType三者相结合实现矢量字体的显示
- 《Linux那些事儿之我是USB》我是U盘(7)狂欢是一群人的孤单
- ftrace跟踪内核_ftrace追踪内核函数调用