Форум программистов, компьютерный форум CyberForum.ru

Связные списки и множества элементов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Посчитать сумму элементов массива, при которых квадратное уравнение имеет решение http://www.cyberforum.ru/cpp-beginners/thread252355.html
Дана матрица a (а1,а2,а3...аn) Найти сумму тех элементов,при которых уравнение X^2+3ax+5=0 Если таких элементов нет,вывести 0. //Trvac e (a1,a2,...an) miachaph zangvac. Gtnel ayn tarreri gumary, voronc depqum //X2+3aix+5=0 qarakusi havasarumn uni irakan armatner. Ete aydpisi elementner chkan, apa tpel 0. //----------------------------
C++ Открытие и побитовое чтение jpeg-файла Здравствуйте уважаемые участники форума. Прошу подсказать, как лучше справиться с задачей. Собственно нужно открыть jpeg-файл и прочитать оттуда разную информацию, для того чтобы потом использовать ее для создания другого файла, тоже jpeg. Хочется услышать вообще идею, как это делается. Как обычно обрабатываются файлы такого вида? Я иду по такому пути: 1. Открываю файл типа FILE *file... http://www.cyberforum.ru/cpp-beginners/thread252344.html
C++ алгоритм форда белмана
Помогите пожалуйста разобраться с этим алгоритмом! я понял его смысл но не до конца. например такой вопрос: как задаётся в нем граф? если можете скиньте пожалуйста код на c++
_itoa,вопрос по char* C++
В MSDN описана функция char *_itoa( int value, char *str, int radix ); В примере
C++ исключения http://www.cyberforum.ru/cpp-beginners/thread252325.html
Помогите пожалуйста создать мнoгoурoвнeвую иeрaрхию нaслeдoвaния клaссoв исключeния для сoздaния ситуaции, в кoтoрoй вaжнa пoслeдoвaтeльнсoть oбрaбoтчикoв исключeний.
C++ как заставить С++ и С# работать вместе? Здравствуйте! Хотелось бы научится писать проги со совмещение С++ и шарпа... Посоветуйте что-то почитать или хотябы покажите код как написаная на Си своп_инт(поменять местами 2 инта) и консоль апликейшн на шарпе работают вместе... подробнее

Показать сообщение отдельно
Lenchick
0 / 0 / 0
Регистрация: 14.11.2010
Сообщений: 4

Связные списки и множества элементов - C++

04.03.2011, 22:36. Просмотров 647. Ответов 1
Метки (Все метки)

Здравствуйте!Помогите пожалуйста переделать программу с помощью упорядоченых связных списков:
1)Написать программу которая:
-проверяет принадлежание элемента множеству;
-проверка пустоты множества;
-добавление и удаление элемента;
-чтение и выведение эементов;
Написать модуль,который реализует понятие множества целых.Для подачи множества использовать упорядоченый связный список.
2)Написать программу чтения 2 множеств и выведения резулитата их разници.

Как просто написать программу я знаю,а с понятием связных списков никогда не встречалась и я просто не понимаю,как это грамотно переделать.Я конечно почитала в интернете что это такое,но у меня не так много опыта,что бы взять вот так вот сразу и решить это задание.Прошу,помогите пожалуйста.
Вот обычный программный код для некоторых операций с множествами(подозреваю,нахамутала малость-компилятор злиться):


#include "stdafx.h"
#include <iostream>
using namespace std;

const int MaxSize = 100;

class Set {
int len;
int members[MaxSize];
int Set::find (int a);
public:
Set() {len = 0;}
int getLenght() {return len;}
void showset();
bool isMember (int a);
Set operator + (int a);
Set operator - (int a);
Set operator + (Set ob2);
Set operator - (Set ob2);
};
int Set::find(int a) {
int i;
for(i=0; i<len; i++)
if(members[i] == a) return i;
return -1;
}


void Set::showset() {
cout<<"{";
for(int i=0; i<len; i++)
cout<<members[i] <<" ";
cout <<"}\n";
}


bool Set::isMember(int a) {
if(find(a) !=-1) return true;
return false;
}

Set Set::operator + (int a){
Set newset;
if(len==MaxSize){
cout<<"Mnojestvo polno.\n";
return *this;
}
newset = *this;
if(find(a)==-1) {
newset.members[newset.len] = a;
newset.len++;
}
return newset;
}
Set Set::operator - (int a){
Set newset;
int i = find(a);
for(int j=0; j<len; j++)
if(j!=i) newset = newset+members[j];
return newset;
}




Set Set::operator +(Set ob2){
Set newset = *this;
for(int i=0; i<ob2.len; i++)
newset = newset + ob2.members[i];
return newset;
}
Set Set::operator - (Set ob2){
Set newset =*this;
for (int i=0; i<ob2.len; i++)
newset = newset - ob2.members[i];
return newset;
}

//демонстрация класса Set
int main () {
Set s1;
Set s2;
Set s3;
s1= s1+1;
s1=s1 +2;
s1=s1+3;
cout <<"s1 posle dobavlenija elementov:";
s1.showset();
cout<<"\n";
cout<<"Proverjaem na chlenstvo,ispolsyja isMember().\n";
if(s1.isMember(2))
cout<<"2 ne est chlenom s1.\n";
if(s1.isMember(4))
cout<<"4 est chlenom s1.\n";
else
cout<<"4 ne est chlenom s1.\n";
cout<<"\n";
s1=s1 - 2;
cout<<"s1 posle s1=s1-2:";
s1.showset();
s1=s1 - 1;
cout<<"s1 posle s1=s1-1:";
s1.showset();
s1=s1-3;
cout<<"s1 posle s1=s1-3:";
s1.showset();
cout<<"\n";

s1=s1+1;
s1=s1+2;
s1=s1+3;
cout<<"s1 posle dobavlenija 1 2 3:";
s1.showset();
cout<<"\n";

s2=s2+1;
s2=s2+4;
s2=s2+5;
cout<<"s1 posle dobavlenija 1 4 5:";
s2.showset();
cout<<"\n";
s3=s1+s2;
cout<<"s3 posle s3-s1:";
s3.showset();
cout<<"\n";
cout<<"s2 posle s2=s2-s2:";
s2=s2-s2;
s2.showset();
cout<<"\n";
s2=s2+3;
s2=s2+2;
s2=s2+1;
cout<<"s2 posle dobavlenija 1 2 3:";
s2.showset();
system("pause");
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru