Задача по графам!

Тема в разделе "Общие вопросы по С и С++", создана пользователем gfz, 5 июн 2005.

Статус темы:
Закрыта.
  1. gfz

    gfz Гость

    Задача:
    Задан граф в виде количества ребер n<=10 и списка ребер. Необходимо проверить, есть ли в графе вершина, смежная со всеми другими вершинами. Матрица задается при помощи матрицы смежности. Вот пример ввода матрицы смежности. Надо продолжить программу. Помогите пожалуйста.

    #include <stdio.h>
    #include <conio.h>
    #define NMAX 5
    #define RMAX 8
    int g1 [NMAX][RMAX], /*матрица смежности*/
    n, /*количество вершин*/
    k; /*количество ребер*/

    void matrsmezh (void)
    { int i, j;
    printf ("Введите матрицу смежности:\n\n");
    printf (" |");
    for (j=0; j<n; j++) printf ("%d ", j);
    putchar ('\n');
    for (i=0; i<2*n+2; i++) putchar ('-');
    for (i=0; i<n; i++)
    { printf ("\n%d|", i);
    for (j=0; j<n; j++) scanf ("%d", &g1[j]);
    }
    putchar ('\n');
    }

    void main ()
    { /*Текст основной программы*/
     
  2. mike.dld

    mike.dld Гость

    Граф направленный или нет? Если направленный, считать соединением только рёбра, направленные от вершины, или к вершине тоже?
     
  3. Ste1L

    Ste1L Гость

    int poisk()
    {
    int i, j;
    for (i = 0; i < n; i++)
    for (j = 0; j < n; j++)
    if (g1[j] == n) return i;
    return -1;
    }

    Функция вернет номер мскомой вершины(если она есть), и -1 в противном случае.
    (Если граф неориентированный, то надо переделать функцию ввода)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей