Да, вы можете, нет необходимости использовать указатели для списка ссылок. Можно связать список без использования указателей. Вы можете статически выделить массив для узлов, и вместо использования следующего и предыдущего указателя вы можете просто использовать индексы. Вы можете сделать это, чтобы сэкономить память, если, например, ваш список ссылок не превышает 255, вы можете использовать «unsigned char» в качестве индекса (ссылаясь на C) и сохранить 6 байтов для следующих и предыдущих указаний.
Вам может понадобиться этот вид массива во встроенном программировании, поскольку ограничения памяти иногда могут быть проблематичными.
Также имейте в виду, что ваши узлы списка ссылок не обязательно должны быть смежными в памяти.
Допустим, в вашем списке ссылок будет 60000 узлов. Выделение свободного узла из массива с использованием линейного поиска должно быть неэффективным. Вместо этого вы можете просто хранить следующий индекс свободных узлов:
Просто инициализируйте ваш массив, так как каждый следующий индекс показывает текущий индекс массива + 1, а firstEmptyIndex = 0.
При выделении свободного узла из массива, захватите узел firstEmptyIndex, обновите firstEmptyIndex как следующий индекс текущего индекса массива (не забудьте обновить следующий индекс как Null или пустой или любой другой после этого).
При освобождении обновите следующий индекс освобождающего узла как firstEmptyIndex, затем выполните firstEmptyIndex = индекс освобождающего узла.
Таким образом, вы создаете себе ярлык для выделения свободных узлов из массива.