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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2010, 00:42   #1
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
Восклицание Матрица Смежности

Здравствуйте у меня такая цель мне нужно заполнить матрицу смежности
но не знаю как это выглядит в коде приведу пример:даны вершины
А ,В,C ; А->В, B->A; В->C, C->B; получился неориентированный граф
вот Матрица Смежности
А В С
А0 1 0
В1 0 1
С0 1 0 ,
порядок вершин и их количество меняется приведите пожалуйста пример с кодом а то я понять не могу как это будет.
Alex_sim вне форума Ответить с цитированием
Старый 15.09.2010, 20:44   #2
dxdy
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 78
По умолчанию

Alex_sim, на каком языке тебе нужно реализовать? Просто создай двумерный массив и заполни его 0 и 1. Размер матрицы - это количество вершин в графе.
Ты же ведь верно все указал на примере:
Цитата:
А В С
А0 1 0
В1 0 1
С0 1 0
Пример заполнения матрицы смежности
Код:
#include <iostream>
using namespace std;

int createMatrix(const int n, const int m);
void printMatrix(int** Array, int n, int m);

int main(){
	createMatrix(2,2);
	return 0;
}

//------------------------
int createMatrix(const int n, const int m){
	int **Array = new int*[n];
	for(int i = 0; i < n; i++)
		Array[i] = new int[m];

	cout << "Enter Matrix: ";
	for(int i = 0; i < n; i++){
		for(int j = 0; j < m; j++)
			cin >> Array[i][j];
	}

	printMatrix(Array,n,m);

	for(int i = 0; i < n; i++)
		delete []Array[i];
	delete []Array;

	return 0;
}

void printMatrix(int** Array, int n, int m){
	for(int i = 0; i < n; i++){
		for(int j = 0; j < m; j++)
			cout << Array[i][j] << " ";
		cout << endl;
	}
}
Я не волшебник, я еще только учусь ٩(๏̯͡๏)۶

Последний раз редактировалось dxdy; 15.09.2010 в 20:54.
dxdy вне форума Ответить с цитированием
Старый 15.09.2010, 21:23   #3
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

Цитата:
Сообщение от dxdy Посмотреть сообщение
Alex_sim, на каком языке тебе нужно реализовать?
На языке С#
Спасибо за код ,коменты напиши вообще хорошо будет..
Alex_sim вне форума Ответить с цитированием
Старый 15.09.2010, 22:57   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

2Alex_sim
Вы перепутали кнопку добавления отзыва (+ к репутации) и кнопку жалобы на сообщение. Отзыв - это весы, жалоба - треугольный знак с красными краями.
MaTBeu вне форума Ответить с цитированием
Старый 17.09.2010, 23:24   #5
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
Восклицание

ребята большая просьба кто на сайте окажите помощь вот я написал как заполнить матрицу смежности логически все вроде верно но заполняет не так как надо
Код:
int[,] ms = new int[V, V];

            
            for (int i = 0; i < V; i++)
            {
                for(int j =0;j<V;j++)
                {
                    ms[i, j] = 0;
                }
            
            }

       
            for (int i = 0; i < V-1; i++)
            {
                
                for (int j = 0; j < V-1; j++)
                {
                    if (j != V)
                    {
                        ms[i, j + 1] = 1;
                    }
                    
                    
                }
               
            }

            for (int i = 0; i < V - 1; i++)
            {

                for (int j = 0; j < V - 1; j++)
                {
                    if (j != V)
                    {
                        ms[i + 1, j] = 1;
                    }
                    
                }
               
            }
должен при количестве вершин 3 выводить следующее
А Б В
А0 1 0
Б1 0 1
В0 1 0
а получается
А Б В
А0 1 1
Б1 1 1
В1 1 0 почему не пойму подскажите пожалуйста!!!
Alex_sim вне форума Ответить с цитированием
Старый 18.09.2010, 21:37   #6
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

подскажите плиз
Alex_sim вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список смежности (С++) phantom4eg Помощь студентам 0 21.04.2010 18:27
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11
Графы, матрица смежности. SteRN89 Помощь студентам 1 14.01.2009 08:11