📄 05070202225.cpp
字号:
//P18 2.25合并线性表
#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,SList &c)
{
int i(0),j(0),k(0);
c.elem=new Elemtype[a.length];
do
{
if(a.elem[i]>b.elem[j])//a大时b向后移
j++;
else if(a.elem[i]<b.elem[j])//b大时a向后移
i++;
else
{
c.elem[k]=a.elem[i];
k++;
i++;
j++;
}
}while(j<b.length&&i<a.length);
c.length=k;
}
//主函数
void main()
{
SList A,B,C;//声明线性表
int a[]={1,3,4,7};
int b[]={2,4,7};
ListCreate( A,4,a);//调用构建函数
ListCreate( B,3,b);
ListSame ( A,B,C);//调用交集函数
for(int i=0;i<C.length;i++)
cout<<C.elem[i];
cout<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -