📄 05070202227.cpp
字号:
//P18 2.27合并线性表
#include<iostream.h>
typedef int Elemtype;
//构建结构体
struct SList
{
Elemtype *elem;
int length,listsize;
};
//创建线性表
bool ListCreate(SList &L,int n,Elemtype a[])
{
int i;
L.elem=new Elemtype[n+100];
if(!L.elem) return false;
L.length=n;
L.listsize=n+100;
for(i=0;i<n;i++) L.elem[i]=a[i];
return true;
}
//交集合并函数
void ListSame (SList &a,SList &b)
{
int i(0),j(0),k(0),m(0);
do
{
if(a.elem[i]>b.elem[j])//a大时b向后移
j++;
else if(a.elem[i]<b.elem[j])//a大时b向后移
i++;
else
{
a.elem[k]=a.elem[i];
k++;
i++;
j++;
}
}while(j<b.length&&i<a.length);
//删除区别相同元素
for(i=0;i<k;i++)
{
if(a.elem[i]==a.elem[i+1])
{
a.elem[m]=a.elem[i+1];
i++;
}
else
a.elem[m]=a.elem[i];
m++;
}
a.length=m;
cout<<endl;
}
//主函数
void main()
{
SList A,B;//声明线性表
int a[]={1,1,3,7};
int b[]={1,1,7};
ListCreate( A,4,a);//调用构建函数
ListCreate( B,3,b);
ListSame ( A,B); //调用交集函数
for(int i=0;i<A.length;i++)
cout<<A.elem[i];
cout<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -