A estrutura de dados correta para usar em um clone do Excel
Digamos que estou trabalhando em um clone do Excel em C #. Minha grade é representada da seguinte forma:
private struct CellValue
{
private int column;
private int row;
private string text;
}
private List<CellValue> cellValues = new List<CellValue>();
Cada vez que o usuário adiciona um texto, apenas o empacoto como CellValue e o adiciono ao cellValues. Dado um tipo CellValue, posso determinar sua linha e coluna em O (1), o que é ótimo. No entanto, dada uma coluna e uma linha, preciso percorrer todo o cellValues para descobrir qual texto está nessa coluna e linha, o que é terrivelmente lento. Além disso, dado um texto, eu também preciso percorrer a coisa toda. Existe alguma estrutura de dados em que eu possa realizar todas as 3 tarefas em O (1) tim
Atualizado: Examinando algumas das respostas, acho que não encontrei uma que eu goste. Eu posso
Não mantenha mais de 2 cópias do CellValue, para evitar sincronizá-las. No mundo C, eu teria feito bom uso de ponteiroinhas e colunas podem ser adicionadas dinamicamente (diferente do Excel