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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2009, 00:51   #1
pinch000
Пользователь
 
Регистрация: 29.10.2009
Сообщений: 42
По умолчанию проблема со списками

всем привет возникла одна проблема насчет динамических структур данных. Как сделать так чтоб элементы списка я сам вводил, а не случайно генерировался..... помоготе пожалуйста
вот условие задачи:
Код:
Сформировать списки L1 и L2 из списка L по следующему правилу: в L1 поместить положительные элементы списка L, в L2 – отрицательные элементы списка L.
. Вот код:

Код:
#include "stdafx.h"
#include "iostream"
#include "stdlib.h"//для рандом
#include "time.h"//для рандом
#define randomize() srand((unsigned)time(NULL));
#define random(p) ((int)(rand()*p/RAND_MAX));

using namespace std;

typedef  long  BT;
struct Zveno{
            BT Inf;
            Zveno *Next; };

Zveno *V_Nachalo(Zveno *First, BT X)
{	Zveno *Vsp;
        Vsp = (Zveno *) malloc(sizeof(Zveno));
        Vsp->Inf=X; Vsp->Next=First; First=Vsp;
	return First;
}

Zveno *Iz_Nachala(Zveno *First)
{	Zveno *Vsp;
	Vsp=First->Next;
	free(First);
	return Vsp;
}

Zveno *V_Spisok(Zveno *Pred, BT X)
{	Zveno *Vsp;
        Vsp = (Zveno *) malloc(sizeof(Zveno));
        Vsp->Inf=X;
        Vsp->Next=Pred->Next;
        Pred->Next=Vsp;
        return Vsp;
}

BT Iz_Spiska(Zveno *Pred)
{	BT X;
	Zveno *Vsp;
        Vsp=Pred->Next;
        Pred->Next=Pred->Next->Next;
	X=Vsp->Inf;
	free(Vsp);
	return X;
}

void Print(Zveno *First)
{	Zveno *Vsp;
	Vsp=First;
	while (Vsp)
           {cout << Vsp->Inf << ' '; Vsp=Vsp->Next;}
	cout << "\n";
}

int Pust(Zveno *First)
{
		return !First;
}

Zveno *Ochistka(Zveno *First)
{
        while (!Pust(First)) First=Iz_Nachala(First);
	return First;
}





void main()
{Zveno *S1, *S2, *S3, *V1, *V2, *V3;
 BT a; int i, n;
 printf("Spisok:\n");
randomize();
 S1=NULL;
 //создаём первый элемент
 a=-100+random(201);
S1=V_Nachalo(S1, a);
 n=1+random(20);
 // формируем список произвольной длины и выводим на печать
 V1=S1;
 for (i=2; i<=n; i++)
{
    a=-100+random(201);
    V1=V_Spisok(V1, a);
 }
 Print(S1);
 
 V1 = S1;  S2 = NULL; S3 = NULL;
    while (V1)
	{if (V1->Inf > 0)
	      if (!S2)
		 {S2=V_Nachalo(S2, V1->Inf); V2 = S2;}
	      else {V_Spisok(V2, V1->Inf); V2 = V2->Next;};
	 if (V1->Inf < 0)
	     if (!S3)
		{S3=V_Nachalo(S3, V1->Inf); V3 = S3;}
	     else {V_Spisok(V3, V1->Inf); V3 = V3->Next;};
	 V1= V1->Next;}
  cout << "Spisok 1: \n";
  Print(S2);
  cout << "Spisok 2: \n";
  Print(S3);
  S1=Ochistka(S1); S2=Ochistka(S2); S3=Ochistka(S3);
}
pinch000 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с кольцевыми списками CAXATbIU Общие вопросы Delphi 3 18.10.2009 00:51
c++. Работа со списками megavolt91 Помощь студентам 0 14.06.2009 21:31
Работа со списками Dimo444ka Помощь студентам 2 01.06.2008 16:34
Работа со списками. radist Паскаль, Turbo Pascal, PascalABC.NET 4 07.05.2007 00:05