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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2012, 12:00   #1
Anastasia2012
Новичок
Джуниор
 
Регистрация: 09.12.2012
Сообщений: 3
По умолчанию Списки

Здравствуйте ПОМОГИТЕ ПОЖАЛУЙСТА с 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;
}
}
}

Последний раз редактировалось Stilet; 09.12.2012 в 12:16.
Anastasia2012 вне форума Ответить с цитированием
Старый 09.12.2012, 12:25   #2
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Могу написать, но это кое чего требует... 576319398
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
kineziz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Списки ProstoKuzia Паскаль, Turbo Pascal, PascalABC.NET 0 12.05.2012 14:37
Списки sabika Помощь студентам 0 02.12.2009 18:54
Списки AnnNet Microsoft Office Excel 5 23.11.2009 20:29
Списки ANG3 Microsoft Office Word 4 22.11.2009 21:00