Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > списки


Автор: Anastasia2012 9.12.2012, 10:59
Здравствуйте ПОМОГИТЕ ПОЖАЛУЙСТА с 3 и 4 заданием
1.Организовать два связных списка по m случайных элементов диапазона от -5 до 5, использую дункцию создания списка с помощью генератора случайных чисел.
2. Вывести оба списка на экран. В функцию вывода добавить подсчет элементов.
3. В первом списке удалить узлы с нулевым значением, а во втором списке - узлы со значением 1.
4. Слить оба списка в один простым сцеплением. Вывести на экран.
Код

#include <vcl.h>
#include<iostream.h>
#include<conio.h>
#pragma hdrstop

#include <tchar.h>
//---------------------------------------------------------------------------

struct List
{
int data;
List *next;
};
typedef List* LPtr;
LPtr Head=NULL;
int m,i,z;
void Show(LPtr H);
LPtr Form(int n);
void outs(LPtr H);
void del(LPtr &H,int r);
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"Vvedite s klaviaturbI m"<<endl;
cin>>m;
cout<<"\n";
LPtr Head=Form(m);
cout<<"Spisok pervbIi: \n";
LPtr Hop=Form(m);
Show(Head);
del(Head, 0);
cout<<"\n Spisok vtoroi: \n";
Show(Hop);
del(Hop, 1);
getch();
return 0;
}
//---------------------------------------------------------------------------
void Show(LPtr H)
{
LPtr tmp=H;
while(tmp)
{
cout<<tmp->data<<"\t";
tmp=tmp->next;
}
}
LPtr Form(int n)
{
LPtr L,t;
if(n<0) return NULL;
L=new List;
L->data=rand()%5;
L->next=NULL;
t=L;
for(int i=0;i<n;i++)
{
t->next=new List;
t=t->next;
t->data=rand()%11-5;
t->next=NULL;
}
return L;
}

void outs(LPtr H)
{
z=0;
LPtr tmp=new List;
while (tmp)
{
z++;
cout<<tmp->data<<'\t';
tmp=tmp->next;
}
cout<<"\nkolichestvo elementov:"<<z<<endl;
}
void del(LPtr &H,int r)
{
LPtr tmp=H;
if(H->data==r)
{
H=H->next;
delete tmp;
}
LPtr pred=H;
while(tmp)
{
if(tmp->data!=r)
{
pred=tmp;
tmp=tmp->next;
}
else
{
pred->next=tmp->next;
delete tmp;
}
}
} 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)