Is a data structure considered to be a single unit of data (datum)?
Bene, a volte sì, in modo molto astratto, ma spesso no se si guarda sotto il cofano.
... a variable is defined as a memory space that stores a single unit of data (datum) ...
Ma anche quella singola unità di dati di solito consiste in più bit binari individuali, forse più byte o parole. Quindi è davvero una questione di terminologia, o, più importante, prospettiva , se considerare un dato o dati. È probabilmente la risposta più completa.
Penso che il punto principale che vorrei fare sia che ci sono diversi punti di vista a seconda di chi la sta guardando.
Considerare la natura del ruolo del cliente rispetto al ruolo di implementazione - una delle relazioni più importanti nella programmazione. Cerchiamo di separare il cliente dall'implementazione usando l'astrazione; questo facilita la programmazione, specialmente quando i programmi diventano più grandi e cambiano nel tempo.
Dal punto di vista del cliente di alto livello, molti elementi potrebbero essere considerati una sola astrazione e quindi, logicamente un dato, nonostante siano costituiti da più singoli bit di stato.
Tuttavia, sotto il cofano e dal punto di vista dell'implementazione, il dato si decompone in un'organizzazione o composizione di altri elementi.
Ad esempio, un array di int potrebbe essere considerato un singolo dato per un solo modo di guardarlo. Ma è anche una composizione di più int's. Un elenco o albero collegato è una struttura dati ancora più complessa (rispetto a un array) e in genere è composto da più blocchi di memoria indipendenti, quindi è composto da più dati. Tuttavia, possiamo spesso trattare un elenco o un albero collegato come un'astrazione, ad esempio, possiamo passare un intero albero facendo riferimento a un'altra funzione con un singolo parametro. Quindi, da un altro punto di vista è logicamente una singola entità (anche se sicuramente composta da più parole di memoria).
C ha union
's e struct
' s, che riflettono tipi di somma e tipi di prodotto in Tipi di dati algebrici . Questi possono o non possono essere considerati strutture dati: tuttavia, quando la maggior parte usa il termine struttura dati , stanno evocando un complesso (e possibilmente algoritmica) entità (rispetto a una singola struttura o unione) composta da più strutture collegate tra loro da riferimenti di qualche tipo (es. puntatori).
Si noti che per quanto riguarda le strutture dati, viene visualizzato il termine Tipo di dati astratti , che deve essere differenziato dal tipo di dati algebrico ( entrambi ADT abbreviato). Strutture dati astratte supportano la relazione cliente / implementazione (per astrazione, ovviamente).
C'è anche mereology , che è lo studio della composizione di una parte intera ed è un concetto ricorsivo. Una macchina è un'entità in sé e per sé, tuttavia, può essere scomposta nelle sue parti. Mereology è lo studio filosofico dei vari aspetti e relazioni tra tutto e parte, e come tale è a proposito della domanda su dati e dati.