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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2009, 22:42   #1
StudentPolitech
Форумчанин
 
Аватар для StudentPolitech
 
Регистрация: 21.11.2008
Сообщений: 400
Печаль Что делает эта прога

Помогите пожалуйста я вот эту тему ваще не понял со списками друг прогу прислал а я ни как разобраться не могу что она точно делает отпишитесь а то я 2 проги уже сделал (по другой теме) а эта никак
Код:
#include <iostream.h>
#include <conio.h>
struct element
{
int key;
element *next;
};

element *make_element();
element *make_list(int n);
element *main_something_do_function(element *l1, element *l2);
void print(element *beg);
//int find_sovp(element *p, int key);

void main()
{
clrscr();
int n,m;
element *l1,*l2,*l;
cout<<"Vvedite kol-vo elementov v spiske 1"<<endl;
cin>>n;
cout<<"Vvedite kol-vo elementov v spiske 2"<<endl;
cin>>m;
l1=make_list(n);
l2=make_list(m);
l=main_something_do_function(l1, l2);
clrscr();
cout<<"Spisok 1"<<endl;
print(l1);
cout<<"Spisok 2"<<endl;
print(l2);
cout<<"Itogoviy spisok"<<endl;
print(l);
getch();
}


element *make_element()
{
cout<<"Nachalo sozdanija elementa"<<endl;
element *p=new (element);
cout<<"Vvedite element"<<endl;
cin>>p->key;
p->next=0;
return p;
}

element *make_list(int n)
{
cout<<"Nachalo sozdanija spiska"<<endl;
element *beg=make_element();
element *r;
for(int i=1;i<n;i++)
	{
   r=make_element();
   r->next=beg;
   beg=r;
   }
return beg;
}

element *main_something_do_function(element *l1, element *l2)
{
cout<<"Nachalo obrabotki spiskov"<<endl;
element *beg,*r,*q,*z;
int n=0;
while(l1)
	{
   z=l2;
   while(z)
   	{
      if((l1->key)==(z->key))
      	{
         cout<<"Naydeno sovpadenie, eto element "<<l1->key<<endl;
         if(n)
         	{
         	r=new (element);
         	r->key=l1->key;
         	r->next=0;
         	q->next=r;
         	q=r;
         	}
         else
         	{
         	beg=new (element);
         	beg->key=l1->key;
         	beg->next=0;
         	q=beg;
         	n=1;
         	}
         }
      z=z->next;
      }

   l1=l1->next;
   }
return beg;
}

void print(element *p)
{
if(!p){cout<<"spisok pust"<<endl;}
while(p)
	{
   cout<<p->key<<" -> ";
   p=p->next;
   }
cout<<endl;
}

/*int find_sovp(element *p, int key)
{
int sovp=0;
while(!sovp)
	{
   if(key==p->key){sovp=1;}
   else{p=p->next;}
   }
return sovp;
} */
Винда, KIS 2010, книжка по С/С++, остальное неважно........

Последний раз редактировалось MaTBeu; 25.03.2009 в 23:03.
StudentPolitech вне форума Ответить с цитированием
Старый 25.03.2009, 22:54   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Вроде бы пересечение списков, т.е. на входе 2 списка, на выходе список элементов, которые есть в этих обоих списках
pu4koff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что делает этот while do? Levhik Общие вопросы C/C++ 4 25.01.2009 17:27
Что делает команда Run.Detach From Program? JY_ Общие вопросы Delphi 3 20.01.2009 13:58
FindEgual-что делает эта функция? stasig Паскаль, Turbo Pascal, PascalABC.NET 1 14.12.2008 23:02
что делает эта программа и где ошибка? дангер Паскаль, Turbo Pascal, PascalABC.NET 27 28.01.2008 13:38