Qual è la struttura dati utilizzata dal programma di fogli di calcolo come ms-excel?Struttura dati utilizzata per l'implementazione di fogli di calcolo
risposta
Forse, probabilmente, una matrice sparsa:
Possibilmente un array multi-dimensionale.
Questo potrebbe essere stato il caso per i fogli di calcolo precoci con implementazioni ingenue che limitavano le righe e le colonne a una quantità che poteva stare in memoria, ma è dubbio che qualsiasi implementazione di successo subirebbe tali vincoli come imposto da un array 2D. L'arte è quella di dare la sensazione di un array 2D senza essere effettivamente un array 2D. – DavidO
Sebbene Excel non sia esattamente Excel, il programma di foglio di calcolo di Open Office è open source. Si tratta di una abbastanza grande base di codice, ma comunque dando una sbirciatina potrebbe dare una migliore comprensione di come viene implementato tale applicazione:
mi aspetto di utilizzare molti.
Ad esempio, un AST per ricalcolare le formule (vedere la domanda this).
Ho ricevuto questa domanda in un'intervista oggi.
La risposta che stavano cercando (perché ho chiesto all'intervistatore alla fine) era di implementare una struttura di classe che utilizzava più oggetti; formule, riferimenti e numeri.
Non molti altri dettagli da offrire, ma è sufficiente dire che programmi come google doc sono molto più interessanti (da codificare) di quanto sembrano.
Sei interessato ai mezzi per memorizzare il contenuto delle celle, o per memorizzare e tenere traccia delle molte celle o di entrambi? – dmckee