Я хочу создать матричное представление для алгоритма графа, используя как можно меньше памяти.
Поэтому я решил попробовать использовать битовое представление значений матрицы, но я также знаю, что это делаетсяC (AFAIK) невозможно, потому что бит не адресуем.
Затем я прочитал пост, предлагающий использовать структуру, которая может помочь мне сделать это, используя, например, int (4 байта, так что 32-bit) и, с некоторой магией и битовыми сдвигами, используйте его как «массив» битов.
Понял, но я не могу понять, как именно я мог это сделать.Я запутался ...
Я думаю об использовании структуры для хранения указателя типа int / void на n байтов, соответствующих наименьшему количеству байтов, на количество n выделенных битов и число k«Количество битов в этом представлении, что-то в этом роде.
Поэтому я подумал, что вы могли бы помочь мне понять, каков наилучший подход для такого рода решений.
Примечание.смущенный?Я все еще заканчиваю в области компьютерных наук, и я только начал изучать графики.Также только что закончил лабораторный проект (реализовал его как матрицу, но использовал некоторую математику, чтобы выделить только половину матрицы и представил ее как симметричную), но я пытаюсь расширить суть.Кроме того, потому что мне стало очень любопытно:)
Спасибо всем.
PS: почти забыл, я программирую это на C, но я очень хорошо понимаю языки C ++, .Net и Java.Еще раз спасибо.