@【数据结构】(指针实现动态数组,交集与并集)

@【数据结构】(指针实现动态数组,交集与并集)

利用指针来实现动态数组,求两个集合的交集和并集。

#include<iostream>
using namespace std;

void main()
{
	int *p, *q;
	int m, n, i, j;
	cout << "请输入数组p的长度:";
	cin >> m;
	if (!(p = new int[m]))   //分配内存
	{
		cout << "错误" << endl; exit(1);
	}
	cout << "输入数组A 中的数据:" << endl;
	for (i = 0; i < m; i++)
		cin >> p[i];


	cout << "请输入数组q的长度:";
	cin >> n;
	if (!(q = new int[n]))   //分配内存
	{
		cout << "错误" << endl; exit(1);
	}
	cout << "输入数组q 中的数据:" << endl;
	for (i = 0; i < n; i++)
		cin >> q[i];

	//并集
	int f = 0, c[100];
	for (i = 0; i < m; i++)
	{
		c[f] = p[i]; f++;
	}
	for (j = 0; j < n; j++)
	{
		for (i = 0; i < m; i++)
			if (q[j] == p[i])break;
		if (i >= m)
		{
			c[f] = q[j]; f++;
		}
	}
	cout << "并集为:" << endl;
	for (i = 0; i < f; i++)
		cout << c[i] << "  ";
	cout << endl;
	//交集
	cout << "交集为:";
	for (i = 0; i < m; i++)
		for (j = 0; j < n; j++)
			if (p[i] == q[j])
			{
				cout << p[i] << " ";
				break;
			}
	cout << endl;
	system("pause");
}

测试示例:
在这里插入图片描述

发布了20 篇原创文章 · 获赞 1 · 访问量 85

猜你喜欢

转载自blog.csdn.net/gsgs1234/article/details/104843424