Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nikalerka
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 77
#1

Матрица смежности - C++

23.11.2010, 20:12. Просмотров 425. Ответов 0
Метки нет (Все метки)

есть такая программка. она позволяет построить списки смежности для данного ориентированного графа (вообщем-то матрицу смежности). N - количество вершин графа.

Вопрос: как переделать программу так, чтобы N задавалось пользователем?


#include <iostream.h>
#include <conio.h>
#define N 4
#define TRUE 1
#define FALSE 0

typedef struct zveno *svqz;
typedef struct zveno
{
int Key;
svqz Sled;
} Leader;

class Spisok {
private:
svqz beg[N+1];
svqz res;
void Poisk (svqz,int);
public:
Spisok ();
svqz GetPoisk () { return res; }
void MakeGraph ();
void PrintGraph ();
void AddGraph (int,int);
};

void main ()
{
clrscr();
Spisok A;
int x;
int y;

A.MakeGraph ();
cout<<"predstavlenie grafa spiskami smegnosti\n";
A.PrintGraph (); cout<<endl;
getch();
}

void Spisok::Poisk (svqz uksp,int ment)
{
svqz q;

res = NULL; q = uksp;
while ((q!=NULL)&&(res==NULL))
{ if ((*q).Key==ment) res = q; q = (*q).Sled; }
}

void Spisok::AddGraph (int x,int y)
{
svqz ukzv,uzel;

if (beg[x]!=NULL)
{
Poisk (beg[x],y);
if (GetPoisk()==NULL)
{
uzel = new (Leader);
(*uzel).Key = y; (*uzel).Sled = NULL; ukzv = beg[x];
while ((*ukzv).Sled!=NULL)
ukzv = (*ukzv).Sled;
(*ukzv).Sled = uzel; }
}
else { beg[x] = new (zveno);(*beg[x]).Key = y; (*beg[x]).Sled = NULL; }
}

void Spisok::MakeGraph ()
{
int x,y;

cout<<"vvodite nachalo dygi: "; cin>>x;
cout<<"vvodite konec dygi: "; cin>>y;
while (x!=0)
{
AddGraph (x,y);
cout<< "vvodite nachalo dygi: "; cin>>x;
cout<<"vvodite konec dygi: "; cin>>y;
}
}

void Spisok::PrintGraph ()
{
svqz ukzv;

for (int i=1;i<N+1;i++)
{ cout<<"..."<<i; ukzv = beg[i];

while (ukzv!=NULL) { cout<<(*ukzv).Key; ukzv = (*ukzv).Sled; }
cout<<endl;
}
}

Spisok::Spisok() { for (int i=0;i<N+1;i++) beg[i] = NULL; }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2010, 20:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Матрица смежности (C++):

Матрица смежности - C++
В галактике «Milky Way» на планете «Snowtlake» есть N городов, некоторые из которых соединены дорогами. Император галактики «Milky Way»...

Матрица смежности - C++
Найти максимальное по числу вершин подмножество попарно несмежных вершин данного графа ( с n&lt;=10 вершинами).

Матрица смежности графа - поиск в глубину - C++
Здравствуйте дорогие форумчане. У меня тут небольшая ошибка. Никак не могу понять что к чему. Объясните пожалуйста. #include &lt;iostream&gt; ...

Графы, матрица смежности, поиск петель - C++
Добрый вечер! Задача: Задан граф в виде количества вершин n≤10 и последовательности ребер (каждое ребро задается парой смежных вершин)....

Графы. Гамильтонов Цикл. Матрица смежности - C++
Вот программа, которую я взял с поиска. Программа должна найти Гамильтонов цикл. #include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; const...

Матрица/связные_списки смежности для ориентированного графа - C++
Скажите, пожалуйста, когда я создаю матрицу смежности для ориентированного графа, то в матрице у меня должны присутствовать только 0 и 1?...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2010, 20:12
Привет! Вот еще темы с ответами:

Дана матрица смежности и неориентированный граф. Выяснить соседствуют ли две вершины с данными номерами с одной общей вершиной - C++
народ помогите пожалуйста написать программу на с++ на графы дана матрица смежности и неориентированный граф. выяснить соседствуют ли...

По заданной квадратной матрице из нулей и единиц определите, может ли данная матрица быть матрицей смежности простого неориентированного графа - C++
помогите решить вот такую задачу пожалуйста(( По заданной квадратной матрице n*n из нулей и единиц определите, может ли данная матрица...

Преобразование списка смежности в матрицу смежности - C++
Помогите пожалуйста, нужно разработать алгоритм преобразования списка смежности в матрицу смежности, для неорентированного графа. И все...

дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим - C++
помогите пожалуйста. условие: дана квадратичная матрица z. составить программу, которая если матрица симметричная(транспонированная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.