#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define MAXSIZE 110
typedef int ElemType;
typedef int Status;
typedef struct{
int elem[MAXSIZE];
int length;//当前长度
}SqList;
//================================================
void print(SqList *l)
{
int i;
for(i=0;i<l->length;i++)
{
printf("%d ",l->elem[i]);
}
printf("\n");
}
//================================================
Status ListLength(SqList La)
{
return La.length;
}
//================================================
Status getelem(SqList l,int i,ElemType *e)
{ if(i<1||i>l.length)
exit(ERROR);
*e=*(l.elem+i-1);
return OK;
}
//================================================
int LocateElem_Sq(SqList L,ElemType e,Status(*compare)(ElemType,ElemType))
{
//若找到则返回其在L中的为序,否则返回0
ElemType *p;
int i=1;
p=L.elem;
while(i<=L.length&&!(*compare)(*p++,e))
i++;
if(i<=L.length)
return i;
else
return 0;
}
//================================================
Status equal(ElemType a,ElemType b)
{if(a==b)
return TRUE;
else
return FALSE;
}
//================================================
//================================================
void Union(SqList *la,SqList lb)
{
int la_len,lb_len;
int i;
ElemType e;
la_len=ListLength(*la);
lb_len=ListLength(lb);
for(i=1;i<=lb_len;i++)
{
getelem(lb,i,&e);
if(!LocateElem_Sq(*la,e,equal))
ListInsert(la,++la_len,e);
}
}
//================================================
int main()
{
SqList la,lb;
int i,j;
printf("输入线性表la的元素个数:");
scanf("%d",&la.length);
printf("输入线性表la的元素:");
for(j=0;j<la.length;j++)
{
scanf("%d",&la.elem[j]);
}
printf("la=");
for(i=0;i<la.length;i++)
{
printf("%2d",la.elem[i]);
}
printf("\n");
//printf("la=");
//ListTraverse(la,print);
printf("输入线性表lb的元素个数:");
scanf("%d",&lb.length);
printf("输入线性表lb的元素:");
for(j=0;j<lb.length;j++)
{
scanf("%d",&lb.elem[j]);
}
printf("lb=");
for(i=0;i<lb.length;i++)
{
printf("%2d",lb.elem[i]);
}
printf("\n");
//printf("lb=");
//ListTraverse(lb,print);
Union(&la,lb);
printf("la= ");
ListTraverse(la,print);
}
insert是插入 这个很好理解
traverse是什么?遍历打印吗?貌似和print功能一样 看调用应该封装一下就可以了
如下
#include<stdio.h>