Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2012, 19:42   #1
Irka=)
Новичок
Джуниор
 
Регистрация: 12.12.2010
Сообщений: 2
По умолчанию с++

Задание: Написати функцію, що повертає перетинання двох множин, які представлені за допомогою списків.

Эта программка находит только те елементы, которые стоят на одинаковых позициях. Помогите, пожалуйста, переделать так, чтобы находило пересечение множеств не зависимо от позиции!

#include <iostream.h>
#include <conio.h>
#include <stdio.h>

struct f
{
int n;
f *next;
f *prev;
};

f *fir1,*fir2,*cur1,*cur2,*las1,*las2 ;

void main()
{
clrscr();
fir1=cur1=las1=NULL;
fir2=cur2=las2=NULL;

int mas1[5]={2,5,8,1,6};
int mas2[5]={1,5,8,3,6};

for (int i=0; i<5; i++)
{
if (fir1==NULL)
{
las1= new f;
las1->n=mas1[i];
las1->next=NULL;
las1->prev=NULL;
cur1=fir1=las1;
}
else
{
las1= new f;
las1->n=mas1[i];
las1->next=NULL;
las1->prev=cur1;
cur1->next=las1;
cur1=las1;
}
}

for (i=0; i<5; i++)
{
if (fir2==NULL)
{
las2= new f;
las2->n=mas2[i];
las2->next=NULL;
las2->prev=NULL;
cur2=fir2=las2;
}
else
{
las2= new f;
las2->n=mas2[i];
las2->next=NULL;
las2->prev=cur2;
cur2->next=las2;
cur2=las2;
}
}

cout << "Mas 1: ";
for (i=0; i<5; i++)
cout << mas1[i] << " ";
cout << "\nMas 2: ";
for (i=0; i<5; i++)
cout << mas2[i] << " ";

cout << "\n\nPeretun dvox mnogun: ";

cur1=fir1; cur2=fir2;
while (cur1)
{
if (cur1->n==cur2->n)
cout << cur1->n << " ";

cur1=cur1->next;
cur2=cur2->next;
}

getch();
}

Последний раз редактировалось Irka=); 23.04.2012 в 19:48. Причина: Не дописала
Irka=) вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц