Списки смежности из матрицы - Pascal
Формулировка задачи:
Здравствуйте,помогите пожалуйста написать программу,спасибо.Напишите программу, которая строит списки смежности для каждой вершины графа на основе его матрицы смежности.
Входные данные
В первой строке вводится количество вершин графа N ( 1 ≤ N ≤ 1000 ). В следующих N строках записано по N чисел, разделённых пробелами – элементы матрицы смежности графа.
Выходные данные
Программа должна вывести списки смежности для каждой вершины графа в порядке возрастания их номеров. Номера вершин в каждом списке разделены пробелами. Нумерация начинается с единицы. Если из вершины не выходит ни одно ребро, вместо списка нужно вывести число 0.
Примеры
входные данные
5
0 1 1 1 0
1 0 1 0 1
1 1 0 1 0
0 0 0 0 0
0 1 0 1 0
выходные данные
2 3 4
1 3 5
1 2 4
0
2 4
Решение задачи: «Списки смежности из матрицы»
textual
Листинг программы
var
n, i, j, k, a: Integer;
begin
ReadLn(n);
for i:=1 to n do begin
k:=0;
for j:=1 to n do begin
Read(a);
if a<>0 then begin
Write(' ',j); Inc(k);
end;
end;
if k=0 then Write(0);
ReadLn; WriteLn;
end;
end.
Объяснение кода листинга программы
- Объявление переменных:
n- целочисленная переменная, содержащая количество элементов в списке.i- целочисленная переменная, используемая в цикле для обхода элементов.j- целочисленная переменная, используемая во вложенном цикле для обхода элементов.k- целочисленная переменная, содержащая количество ненулевых элементов в строке.a- целочисленная переменная, содержащая значение элемента матрицы.
- Ввод данных:
- Вводится значение переменной
nс помощью функции ReadLn.
- Вводится значение переменной
- Цикл:
- Для каждого значения
iот 1 доnвыполняются следующие действия:
- Для каждого значения
- Инициализация переменной
k:- Переменная
kустанавливается в 0.
- Переменная
- Вложенный цикл:
- Для каждого значения
jот 1 доnвыполняются следующие действия:- Считывается значение элемента матрицы и сохраняется в переменную
a. - Если
aне равно 0, то выполняются следующие действия:- Выводится значение
j, представляющее индекс ненулевого элемента. - Переменная
kувеличивается на 1 с помощью функции Inc.
- Выводится значение
- Считывается значение элемента матрицы и сохраняется в переменную
- Для каждого значения
- Проверка переменной
k:- Если значение переменной
kравно 0, то выводится 0.
- Если значение переменной
- Завершение итерации:
- Происходит переход на новую строку после завершения вложенного цикла.
- Происходит вывод пустой строки.
- Конец выполнения программы.
- Завершение программы.