Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Как добавить новый элемент (Студент) в структуру http://www.cyberforum.ru/c-beginners/thread1197324.html
Вот я только учусь вообщем решил я создать структуру данных студент, все это дело я записываю в стек это я знаю что)Вот мой код. В Вообщем мне интересно как добавляется новый студент то есть у нас...
C (СИ) Создать массив из N строк M столбцов
Здравствуйте. Помогите создать массив функцией malloc N строк и M=N+1 столбцов тоесть матрицу!!!
C (СИ) Запись и чтение из файла вложенных структур
Привет, форумчане. Очень нужен ваш совет. Вот небольшой код в 100 строк, в котором используется вложенная структура с указателям, которая добавляет и считывает данные из файла. #include<stdio.h>...
C (СИ) Считывание массива структур из файла Добрый вечер. Написал программу для создания массива структур и выполнения сортировки, массив может быть записан в файл и загружен из файла, но функция считывания не работает. Не могли бы вы найти... http://www.cyberforum.ru/c-beginners/thread1197202.html
C (СИ) Вычислить сумму чисел http://www.cyberforum.ru/c-beginners/thread1197125.html
подскажите как сделать чтобы выводилась сумма этих чисел http://www.cyberforum.ru/attachments/403811d1401112883t и вот программа #include <stdio.h> #include <conio.h> void main (void) { ...
C (СИ) Как правильно обращаться к char одного из полей структуры в их массиве
Опишу в общем виде. Есть массив из структуры, а структура включает в себя массив из charов. Как можно обратиться к отдельному символу с помощью указателя? Заранее спасибо.
C (СИ) Программа для перевода кода си, в блок-схему
подскажите программку для , писания блок-схем, по круче ворда, а если есть проги - переводов типа AutoFlowchart , кряк - интересует на него.
C (СИ) Разложение Ln(x) в ряд Нужно решить задачу на С: Ln(x)=((x-1)^1)/1 - ((x-1)^2)/2 + ((x-1)^3)/3 - ((x-1)^4)/4 0<x<=1/2 с точностью до eps http://www.cyberforum.ru/c-beginners/thread1197044.html
C (СИ) Найти максимальный из элементов матрицы, расположенных под её побочной диагональю http://www.cyberforum.ru/c-beginners/thread1196980.html
Дана квадратная матрица порядка N . Найти максимальный из элементов матрицы , расположенной под её побочной диагональю.
C (СИ) Найти длину и основание высоты треугольника, опущенной из вершины А на сторону ВС Треугольник задается координатами своих вершин на плос*кости: A(x1, y1), В(х2,, у2), С(х3 ,y3). Найти длину и основание высоты, опущенной из вершины А на сторону ВС. http://www.cyberforum.ru/c-beginners/thread1196914.html
Витя007
0 / 0 / 1
Регистрация: 06.10.2012
Сообщений: 29
0

Топологическая сортировка графа

03.06.2014, 05:52. Просмотров 793. Ответов 1
Метки (Все метки)

Здравствуйте, у меня есть код сортировки, но он слишком громоздкий, помогите его сделать более компактные, только не полузуя структурами.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <stdio.h>
#include <stdlib.h>
#define N 10
 
int main()
{
int n,i,j,k,w,que_sk=0,q,mas[N][N],que[N],result[N];
int criteria,zero_count=0;
 
printf("Enter n: ");
scanf("%d",&n);   //сколько врачей
 
for(i=0;i<n;i++)
{
    for(j=0;j<n;j++)
    {
        mas[i][j]=0;  //обнуляем матрицу перед вводом
    }
    que[i]=-1;   //матрица врачей, которых еще не прошли. не пройденный врач = -1
}
 
for(i=0;i<n;i++)   //ввод критериев для всех врачей
{
criteria=-1;
while(criteria!=0)    //вводить можно не более n критериев, ввод заканчивается если ввели n критериев или введен 0
{                     //вводить критерии по одному
    printf("Enter %d doc: ",i+1);
    scanf("%d",&criteria);
        if(criteria!=0)
           mas[i][criteria-1]=1;  //пишем критерии в матрицу
}
}
 
 
 
for(q=0;q<n;q++)        //цикл по всем врачам (n врачей)
{
que_sk=0;       //счетчик врачей, которых можно посетить
 
for(i=0;i<n;i++)    //начинаем проход по матрице
{
    while(que[i]!=-1&&i<n)  //выбираем строку матрицы для врача, которого еще не посещали
       i++;
 
    zero_count=0;
    for(j=0;j<n;j++)     //считаем количество нулей в строке
    {
       if(mas[i][j]==0)
            zero_count++;
    }
    if(zero_count==n)   //если в строке все нули, то врача можно посетить
    {
    //   printf("%d\n",i);
       result[q]=i+1;   //пишем номер врача в матрицу результата
       que[i]=0;    //отмечаем врача как пройденного
       que_sk++;
    }
}
 
if(que_sk==0)       //если в какой-то момент количество врачей, которых можно посетить = 0, то выводим ощибку и завершаем прогу
    goto err;
 
for(k=0;k<n;k++)  // обнуляем колонки матрицы с номерами врачей, которых посетили (чтоб они стали доступны для посещения)
    {
 
       if(que[k]==0)
              for(w=0;w<n;w++)
                   mas[w][k]=0;
    }
}
 
printf("\nResult: ");
for(i=0;i<n;i++)        //печатаем результат
    printf("%d ",result[i]);
system("pause");
return 0;
 
err:        //печатаем ошибку в случае неудачи
    printf("Nevozmozhno sozdatj ocheredj");
    system("pause");
    return 0;
 
}


Вернуться к обсуждению:
Топологическая сортировка графа
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2014, 05:52
Готовые ответы и решения:

Топологическая сортировка на Си!!!!
Народ!Помогите хоть кто-нибудь с курсовой работой на Си!!! Мне нужно сделать программу на тему...

Топологическая сортировка графа
Задали задание, неделю пытаюсь сделать и все никак не выходит, топологическая сортировка из книгу...

Топологическая сортировка графа
Написал программу топологически сортирующую граф с помощью обхода в ширину. Сдал её на информатиксе...

Топологическая сортировка графа
Здравствуйте! Помогите, пожалуйста. Пишу программу для поиска путей на графах между всеми парами...

Задача топологическая сортировка графа
Добрый вечер,предположим задан взвешенный,ориентированный,ациклический граф в виде матрицы...

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