Sobre optimización de una ED

Jdrap
29 de Octubre del 2008
Hola, tengo una duda acerca de como hacer más eficiente una estructura de datos.
La cosa es que quiero hacer una matriz 9x9 donde cada elemento sea a su vez, una lista de elementos posibles del 1 al 9 (vamos, para representar un sudoku...). Mi problema es que quiero hacerlo lo más eficiente posible, en cuestión de añadir elementos posibles o eliminarlos dentro de cada celda de elementos.
He pensado en utilizar una variable de tipo unsigned short (2B) para representar bit a bit la presencia o no de un elemento dentro de los elementos posibles (utilizaría los 9b menos significativos).
Para hacer set o unset de cada bit utilizaría una función a la que le paso el elemento que quiero modificar y en un switch según el elemento aplicar una máscara determinada en cada posición.
Mi pregunta es: ¿Penáis que esto sería mas eficiente que utilizar un array para representar cada celda de elementos posibles y mantener los elementos que quedan en el array?
Gracias, un saludo.