Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Укажите минимальный порядок графа

rythers Frimans Ученик (97), открыт 1 неделю назад
Добрый вечер, помогите пожалуйста решить задачу с нахождением минимального порядка графа.

Текст задачи:
В некоторой библиотеке есть два класса, в которых определены одинаковые операции для работы с неориентированным графом. В первом классе граф представлен матрицей смежности, структура хранения которой – треугольная динамическая матрица, схематичное изображение которой приведено на рисунке. Элементы матрицы могут принимать значения, равные 0 или 1, указатель m объявлен так:
char ** m;

m[]
---\
----↓
0 [NULL] 0 1 2
1 [ ] -> [ ]
2 [ ] -> [ ][ ]
3 [ ] -> [ ][ ][ ]

Во втором классе граф представляется списками смежности, структура хранения каждого из которых – односвязный линейный список, значением поля данных каждого элемента является номер вершины. Указатели на головы списков размещаются в массиве. Схематичное изображение структуры хранения в целом приведено на рисунке ниже. Указатель g объявлен так:
struct node
{
int number_node;
node* nextl
} **g;

g[]
--\
--↓
0[ ] -> [7][-]-> [5][-]-> [2][-]-> [1][-]-> [6][ ]
1[ ] -> [7][-]-> [0][ ]
2[ ] -> [7][-]-> [0][ ]
3[ ] -> [5][-]-> [4][ ]
4[ ] -> [6][-]-> [5][-]-> [7][-]-> [3][ ]
5[ ] -> [0][-]-> [4][-]-> [3][ ]
6[ ] -> [4][-]-> [0][ ]
7[ ] -> [1][-]-> [2][-]-> [0][-]-> [4][ ]

Укажите минимальный порядок графа, для хранения которого в объекте второго класса будет выделяться гарантированно меньше памяти, чем в объекте первого класса, если степень любой вершины не будет превышать десять, sizeof(int) и размер каждого указателя – 4 байта.
0 ответов
Похожие вопросы