📄 04071505227.cpp
字号:
#include<iostream.h>
typedef int ElemType;//定义元素类型
#include"04071505list.h"
void Intersectslist(SList &a,SList b)//引用a的地址,直接对a进行操作
{
int i,j;
i=j=1;
//基本按照225题的算法,不同的是,我用的方法不是插入而是将不同的元素从a中直接删除
//最后再将重复的元素删除
while((i<=a.length)&&(j<=b.length))
{
if(a.elem[i-1]==b.elem[j-1])//两元素相同,保留
{
i++;j++;
}
else if(a.elem[i-1]<b.elem[i-1])
{
ListDelete(a,i);//元素不同,删除
i++;
}
else j++;
}
i=1;
while(i<=(a.length-1))//将中多出的相同元素删除
{
if(a.elem[i-1]==a.elem[i]) ListDelete(a,i);
else i++;
}
}
void main()
{
SList a,b;//声明两个顺序表
ListInit(a);ListInit(b);//初始化
//下面是给表赋值
cout<<"请分别输入两个线性表的长度:"<<endl;//提示用户输入
cin>>a.length>>b.length;
cout<<"请输入线性表A:"<<endl;
for(int i=1;i<=a.length;i++)
cin>>a.elem[i-1];
cout<<"请输入线性表B:"<<endl;
for(i=1;i<=b.length;i++)
cin>>b.elem[i-1];
cout<<"由线性表交集元素组成的依值递增线性表为:"<<endl;
Intersectslist(a,b);
ListTranverse(a);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -