ВУЗ:
Составители:
Рубрика:
. Практикум по курсу «Алгоритмизация и программирование». Часть 2
g2.a=new int*[g2.n];
for(i=0;i<g2.n; i++)
g2.a[i]=new int[g2.n];
for(i=0; i<g2.n;i++)
for(j=0; j<g2.n;j++)
g2.a[i][j]=0;
// заполнение элементов матрицы единицами
// в зависимости от номеров начальной и конечной
// вершин каждого ребра
for(i=0; i<g1.m; i++)
{
g2.a[g1.edges[i].begin-1][g1.edges[i].end-1]=1;
g2.a[g1.edges[i].end-1][g1.edges[i].begin-1]=1;
}
}
Задача 2. Дан граф в виде списка ребер. Преобразовать граф в динамиче-
ский список смежности.
Сначала выделяется память под массив заголовков списков смежных вер-
шин. В начальный момент все списки пустые. Далее для каждого ребра из
массива ребер (номер начальной вершины сохраняем в переменной begin,
номер конечной вершины – в переменной end) осуществляется добавление
новых элементов в списки: элемента с вершиной end в конец списка смежно-
сти для вершины begin и элемента с вершиной begin в конец списка смеж-
ности для вершины end.
// определение функции преобразования представления графа
// из массива дуг в списки смежности
void Preobr34(Graph3& g1, Graph4& g2)
{
int i;
g2.n=g1.n; g2.m=g1.m;
// создание массива списков смежных вершин
// по количеству вершин графа
g2.nodes=new ElementList*[g2.n];
for(i=0;i<g2.n;i++)
g2.nodes[i]=NULL;
int begin,end;
for(i=0;i<g1.m;i++)
{
// создание для каждого ребра двух элементов
// в списках смежных вершин
111
. Практикум по курсу «Алгоритмизация и программирование». Часть 2
g2.a=new int*[g2.n];
for(i=0;iСтраницы
- « первая
- ‹ предыдущая
- …
- 109
- 110
- 111
- 112
- 113
- …
- следующая ›
- последняя »
