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 求集合并集相关推荐

  1. 第八周实践项目9 算法库——广义表

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目9- *作 者:邵雪源 *完成日期:2017年12月14日 *版 ...

  2. 第五周实践项目7 后缀表达式

    基于栈结构,将中缀表达式转换为后缀表达式的算法步骤是: 初始化运算符栈op; 将'='进栈; 从exp读取字符ch; while (ch!='\0') {     if (ch不为运算符)  将后续的 ...

  3. 第3周 实践项目2 建设”顺序表“算法库(可参考为模板)

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目2 -建设"顺序表算法库" *作 者:邵雪源 ...

  4. 线性表【项目 - 求集合并集C语言】(带注释)

    #include <stdio.h> #define MAXSIZE 50 //您也可以使用 typedef 来为用户自定义的数据类型取一个新的名字.例如,您可以对结构体使用 typede ...

  5. 线性表【项目 - 求集合并集C语言】

    #include <stdio.h> #define MAXSIZE 50 //您也可以使用 typedef 来为用户自定义的数据类型取一个新的名字.例如,您可以对结构体使用 typede ...

  6. 2015级C++第2周实践项目

    [项目1 - 宣告"主权"] 你已经是CSDN博客主了,用IT人特有的方式,编一段程序.在屏幕上输出你想说的话.按要求公布博文,作为我们的开山之作. [项目2 - 胖子不想说体重] ...

  7. 2015级C++第3周实践项目

    [项目1:个人所得税计算器] 编写选择结构程序,输入个人月收入总额,计算出他本月应缴税款和税后收入(计算办法见附:关于个人所得税的有关背景知识). (1)自选if语句的嵌套或/和switch语句完成程 ...

  8. 2015级C++第14周实践项目 模板

    [项目1-排序函数模板] 已知 void Sort(int a[],int size); void Sort(double a[],int size); 是一个函数模板的两个实例,其功能是将数组a中的 ...

  9. 第八周实践项目7 对称矩阵的压缩存储及基本运算

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目7- *作 者:邵雪源 *完成日期:2017年12月14日 *版 ...

最新文章

  1. 不重启JVM,替换掉已经加载的类,偷天换日?
  2. 提供openssl -aes-256-cbc兼容加密/解密的简单python函数
  3. 科学与计算matlab单元测试,mooc现代科学运算—MATLAB语言与应用单元测试答案
  4. 小程序 | 使用 npm 模块配置 Vant Weapp 框架
  5. mysql 创建索引 key_Mysql中创建索引的INDEX和KEY
  6. [AutoSAR]NXP HS12(X) AUTOSAR MCAL编译一下
  7. 凌云一周看点 | 什么是云原生数据库;因云而生的云原生网络;大型团队如何从0到1自建SRE体系;空间数据模型之从CAD到BIM...
  8. 百度 71 个炸天的开源项目!你知道几个?--ECharts UMeditor Ueditor ZRender
  9. MySQL redhat7 安装mysql8
  10. html 点击展开全部,纯CSS实现点击展开全文功能
  11. 主配线区(MDA)、水平配线区(HDA)和设备配线区(EDA)预端接布线方案
  12. javascript 表单提交和验证的方法
  13. 阿里云商标自助注册申请快速入门(详细步骤和教程)
  14. Python-F.softmax(dim)中dim使用理解
  15. 腾讯微信客服电话号码是多少呢/腾讯微信人工服务热线
  16. Java操作MongoDB数据库(简明版)
  17. 《调色师手册:电影和视频调色专业技法(第2版)》——第1章 调色的工作流程 我要为电影院(电影)、广播(电视),还是网络调色?...
  18. WindML、FreeType和TrueType三者相结合实现矢量字体的显示
  19. 《Linux那些事儿之我是USB》我是U盘(7)狂欢是一群人的孤单
  20. ftrace跟踪内核_ftrace追踪内核函数调用

热门文章

  1. poj 1065 Wooden Sticks
  2. 高通camera驱动分析
  3. Mtk Android编译命令
  4. Logstash 参考指南(使用Filebeat Modules配置示例)
  5. 高兴总结台式故障分析==方案
  6. vue-cli安装、node-sass安装、mintUI组件库安装
  7. JAVA学习笔记--初始化与清理
  8. 特朗普马云一起见记者 将“围绕中小企业携手做伟大的事”
  9. struts导入Excel进行解析
  10. [转]oracle设计数据库应选择正确的数据类型