PROC union(VAR LA:Linear_list; LB:Linear_list);
{将所有在线性表LB中存在而线性表LA中不存在的数据元素插入到线性表LA中去}
n := LENGTH(LA); {确定线性表LA的长度}
FOR i:=1 TO LENGTH(LB) DO
[
x:=GET(LB,i);{取得LB中第i个数据元素}
k:=LOCATE(LA,x);{在LA中进行搜索}
IF k=0 THEN
[
INSERT(LA,n+1,x);
n:=n+1;
]
{将LA中不存在的元素插入到LA中,同时修改n的值}
]
ENDP;{union}
C语言实现--顺序存储结构
#include
using namespace std;
struct sqlist//顺序存储结构
{
int elem[10];
int last;
};
void Union (struct sqlist *LA, struct sqlist *LB);
int Locate (struct sqlist *temp, int x);
//
void create(int elements[], int num, struct linklist* l)
{
struct linklist* p;
int i = 0;
//先建立一个空表
(*l).next = NULL;
for (i=num-1; i>=0; i--)
{
p = (struct linklist*)malloc (sizeof(linklist));
(*p).data = elements[i];
//前插式创建
(*p).next = (*l).next;
(*l).next = p;
}
}