A=AUB
#include<stdio.h>
#include<stdlib.h>
#define LIST_MAX 10
#define LIST_ADD 2
typedef struct
{
int *elem;
int length;
int listsize;
}SqList;
int InitList(SqList *L)
{
L->elem=(int *)malloc(LIST_MAX*sizeof(int));
if(!L->elem)
exit(-1);
L->length=0;
L->listsize=LIST_MAX;
return 0;
}
int DestoryList(SqList *L)
{
free(L->elem);
L->elem=NULL;
L->length=0;
L->listsize=0;
return 0;
}
int InsertElem(SqList *L,int i,int e)
{
int *newbase,*p,*q;
if(i<1||i>L->length+1)
exit(-1);
if(L->length>=L->listsize)
{
newbase=(int*)realloc(L->elem,(L->length+LIST_ADD)*sizeof(int));
if(!newbase)
{
printf("分配空间失败!\n");
exit(-1);
}
L->elem=newbase;
L->listsize+=LIST_ADD;
}
p=L->elem+i-1;
q=L->elem+L->length-1;
for(;q>=p;q--)
*(q+1)=*q;
*p=e;
++L->length;
return 0;
}
int LocateElem(SqList L,int e,int (*visit)(int v1,int v2))
{
int *p,i=1;
p=L.elem;
while(p<L.elem+L.length&&!visit(*p,e))
{
++i;
++p;//需要考虑的是当在链表L中找不到满足条件的元素时,p会指向链表结尾的下一个元素的地址
}
if(i<=L.length)
return i;
else
return 0;
}
int Equal(int v1,int v2)
{
if(v1==v2)
return 1;
else
return 0;
}
int GetElem(SqList L,int i,int *e)
{
if(i<1||i>L.length)
exit(-1);
*e=*(L.elem+i-1);
return 1;
}
int Union(SqList *La,SqList Lb,int (*visit)(int v1,int v2)) //主要用到的合并函数
{
int i=1;
int e;
for(;i<=Lb.length;i++)
{
GetElem(Lb,i,&e);
if(!LocateElem(*La,e,visit))
{
InsertElem(La,La->length+1,e);
}
}
return 0;
}
int main()
{
int i,e0;
SqList La,Lb;
InitList(&La);
for(i=1;i<=6;i++)
InsertElem(&La,i,i);
for(i=1;i<=6;i++)
{
GetElem(La,i,&e0);
printf("%d ",e0);
}
printf("\n");
InitList(&Lb);
for(i=1;i<=6;i++)
InsertElem(&Lb,i,2*i);
for(i=1;i<=6;i++)
{
GetElem(Lb,i,&e0);
printf("%d ",e0);
}
printf("\n");
Union(&La,Lb,Equal);
for(i=1;i<=La.length;i++)
{
GetElem(La,i,&e0);
printf("%d ",e0);
}
printf("\n");
DestoryList(&La);
DestoryList(&Lb);
return 0;
}
A=AUB的更多相关文章
- 求新的集合 A=AUB(顺序表)
#include<stdio.h> typedef int A; const int LIST_INIT_SIZE=100; const int LISTINCREMENT=10; typ ...
- 分享一个html+js+ashx+easyui+ado.net权限管理系统
EasyUI.权限管理 这是个都快被搞烂了的组合,但是easyui的确好用,权限管理在项目中的确实用.一直以来博客园里也不少朋友分享过,但是感觉好的要不没源码,要不就是过度设计写的太复杂看不懂,也懒得 ...
- Oracle学习笔记九 数据库对象
Oracle 数据库对象又称模式对象,数据库对象是逻辑结构的集合,最基本的数据库对象是表. 其他数据库对象包括:
- shell脚本批量收集linux服务器的硬件信息快速实现
安装ansible批量管理系统.(没有的话,ssh远程命令循环也可以) 在常用的数据库里面新建一张表,用你要收集的信息作为列名,提供可以用shell插入.
- logback logback.xml常用配置详解 <filter>
<filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一.返回DENY,日志将立即被抛弃不再经过其他过滤器:返回NEUTRAL,有序列表 ...
- 深入解析SQL Server并行执行原理及实践(上)
在成熟领先的企业级数据库系统中,并行查询可以说是一大利器,在某些场景下他可以显著的提升查询的相应时间,提升用户体验.如SQL Server, Oracle等, Mysql目前还未实现,而Postgre ...
- C++基础——模拟事务 (1)COMMAND模式
=================================版权声明================================= 版权声明:原创文章 禁止转载 请通过右侧公告中的“联系邮 ...
- logback配置详解3<filter>
logback 常用配置详解(三) <filter> <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一.返回DENY ...
- 【转】logback logback.xml常用配置详解(三) <filter>
原创文章,转载请指明出处:http://aub.iteye.com/blog/1110008, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
随机推荐
- SQL SERVER作业的Schedules浅析
SQL SERVER作业的计划(Schedules),如果你没仔细研究过或没有应用一些复杂的计划(Schedules),那么你觉得SQL SERVER作业的计划(Schedules)非常好用,也没啥问 ...
- 关于Thinkcmf中热门文章的使用
今天在做一个首页新闻列表页面的功能时候,因为要读取大量的新闻内容列表.如果每条数据都要从数据按照文章id和term_id来对应取值,无疑是很痛苦的. 然而机智如我,发现cmf框架中热门文章的用法: 在 ...
- linux中文件(档案)和目录的RWX权限意义
1 权限对文件的意义 权限对文件的意义很好理解,下面我们看看权限对目录的意义. 2 权限对目录的意义 档案是存放实际资料的所在,那么目录主要是储存啥玩意啊?目录主要的内容在记录档名清单,档名与目录有强 ...
- 自己开发一个 vsts agent 的 task
vsts 中支持自定义Build/Release的过程Task 目标:做一个可以读取 Xamarin.Android 所生成的 APK 的 基本信息的 task ,包括 package(包名) / a ...
- WPF Freezable–How to improve your application's performances
在给ImageBrush绑定动态图片是会报以下错误. Error 4 The provided DependencyObject is not a context for this Fre ...
- 尽量不要用ad,adv···,advertisement 这些关键词命名
html dom,文件夹名称,文件名称·······,都尽量不用ad,adv···,advertisement 这些关键词! 为嘛呢? 因为会被浏览器的广告插件自动给屏蔽掉. 我的网站中有一个广告管 ...
- NOIP2001 一元三次方程求解[导数+牛顿迭代法]
题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差 ...
- 洛谷P1782 旅行商的背包[多重背包]
题目描述 小S坚信任何问题都可以在多项式时间内解决,于是他准备亲自去当一回旅行商.在出发之前,他购进了一些物品.这些物品共有n种,第i种体积为Vi,价值为Wi,共有Di件.他的背包体积是C.怎样装才能 ...
- 洛谷11月月赛round.1
太感动了#2 thwfhk 240 (801ms) 100 100 40 又一张明信片,话说10月的怎么还没收到 P2246 SAC#1 - Hello World(升级版) 题目背景 一天, ...
- JS重载
Js 不支持函数的重载,可以用相同的名字在同一作用区域,定义两个函数,而不会引起错误,但真正使用的是最后一个. Js 不会验证传递给函数的参数个数是否和函数定义的参数的个数相同,开发人员定义的函数都可 ...