Un array è una struttura di dati ordinata come una lista?
Dipende da cosa intendete per "ordinato". Per esempio, né un array né una lista hanno alcun requisito che i valori siano in un ordine particolare. Nessuno dei due ha il requisito che i valori siano messi all'inizio o alla fine della collezione quando vengono aggiunti. Nessuno dei due richiede che l'ordine sia mantenuto.
Potete aggiungere vincoli alla definizione di "ordine", e sotto questi vincoli potete fare asserzioni su ciò che accadrà quando aggiungete o cancellate un valore all'insieme. Si possono fare asserzioni sul costo big-O di fare aggiunte, cancellazioni, iterazioni, ecc. Tuttavia, nessuno di questi considera il caso in cui la costante di proporzionalità da cui dipende big-O non è una costante, e, infatti, può differire di sette ordini di grandezza tra due elementi, e statisticamente, è spesso il caso che un array sia enormemente più efficiente in pratica di una lista collegata, in diretta contraddizione con la teoria astratta, che fa assunzioni ingiustificate, come ad esempio che ogni operazione ha tempo costante.
Nota che altre collezioni, come le mappe hash, gli insiemi e altre strutture di dati, hanno costi diversi, e non hanno nemmeno vincoli sull'ordine. Quindi bisogna avere una definizione molto attenta di "ordine" per ottenere una risposta significativa alla domanda.
Nota che Java ha una classe chiamata ArrayList che è un array che supporta operazioni di tipo lista.
Articoli simili
- Come possiamo convertire un array 1-dimensionale in un array 2-dimensionale in Python?
- Come eliminare qualcuno dalla lista dei contatti di WhatsApp senza eliminarlo dalla lista dei contatti principali
- Quale struttura di dati scegliere per il sito web del social network?
- Che struttura di dati usa Google per memorizzare le mappe offline?