⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 04071505227.cpp

📁 数据结构的部分算法程序。相对来说是通用算法中效率比较高的程序
💻 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 + -