Durante il tentativo di rispondere a What is the difference between a composite data type and a data structure? ho capito che mentre ho un'idea chiara di quale tipo di dati è e come non è la stessa cosa di un dato struttura, non posso mettere la differenza in parole. Se stavi insegnando un corso introduttivo di CS, come spiegheresti la differenza?Spiegare la differenza tra una struttura * dati * e un tipo di dati *
risposta
A dati struttura è una descrizione astratta di un modo di organizzare i dati per consentire che determinate operazioni su di esso vengano eseguite in modo efficiente. Ad esempio, un albero binario è una struttura di dati, come un heap di Fibonacci, un albero AVL o skiplist. I teorici descrivono le strutture dati e ne dimostrano le proprietà al fine di dimostrare che determinati algoritmi o problemi possono essere risolti efficientemente in base a determinati presupposti.
Un dato tipo è una classe (potenzialmente infinita) di oggetti concreti che condividono tutti una proprietà. Ad esempio, "intero" è un tipo di dati che contiene tutti gli infiniti numeri interi, "stringa" è un tipo di dati contenente tutte le stringhe infinitamente numerose e "numero intero a 32 bit" è un tipo di dati contenente tutti gli interi espressi in trenta -due bit. Non v'è alcun obbligo che un tipo di dati sia un primitivo in una lingua - per esempio, in C++, il tipo int
è un primitivo, come è questa:
struct MyStruct {
int x, y;
};
In questo caso, MyStruct
è un tipo di dati che rappresenta tutti gli oggetti possibili etichettati MyStruct
che hanno due int
s in loro etichettati x
e .
È possibile avere un tipo di dati che rappresenta tutte le possibili istanze di una struttura di dati. Ad esempio, è possibile codificare un albero binario di ricerca con questo tipo di dati:
struct BST {
int data;
BST* left, *right;
};
In breve, un dato struttura è un oggetto matematico con un insieme di proprietà che si può realizzare in molti modi diversi, come i dati tipi. Un dato tipo è solo una classe di valori che può essere concretamente costruita e rappresentata.
Signore, non capisco qual è la differenza tra il tipo di dati astratti e il tipo di dati? –
tipo di dati è un qualsiasi tipo inclusi i tipi di base come int ma anche estesi alle strutture. le strutture sono sempre costituite da tipi di base e/o altre strutture.
Quindi int è un tipo di dati ma non una struttura. Considerando che struct point {int x; int y; } è sia una struttura che un tipo di dati.
C'è un altro, più comune significato della struttura dei dati rispetto al costrutto del linguaggio C * struct * - vedi la risposta di templatetypedef sotto. –
potrebbe anche essere una classe che è fondamentalmente una struct con metodi. e allora? – jun
Il tipo di dati non può più essere ridotto, mentre una struttura dati può essere costituita da più campi di dati diversi.
Tuttavia, molto probabilmente, vorrei usare un'analogia: un tipo di dati è un atomo, mentre le strutture dati sono molecole. (sì, lo so, gli atomi possono essere divisi ecc., ma l'analogia dovrebbe reggere allo scopo).
Grande !!! Grazie!!! – beginner
- 1. Qual è la differenza tra un tipo di dati astratto (ADT) e una struttura dati?
- 2. Java: Differenza tra una raccolta e "Struttura dati"
- 3. Qual è la differenza tra un "contenitore" e una "struttura dati"?
- 4. Differenza tra \ * DATA e * DATI
- 5. Qual è la differenza tra schema e dizionario dati?
- 6. Qual è la differenza tra modello dati e modello oggetto?
- 7. Qual è la differenza tra tipo e tipo di dati in Haskell?
- 8. Qual è la differenza tra la struttura dei dati Albero e Grafico?
- 9. Qual è la differenza tra dati trasformabili e binari
- 10. Differenza tra ID e dati-dojo-id
- 11. Differenza tra proprietà accessoria e proprietà dati in ECMAScript?
- 12. Struttura il tipo di dati in php?
- 13. Differenza tra String.getBytes() e Bytes.toBytes (dati String)
- 14. struttura dati persistente vs immutable
- 15. Qual è la differenza tra voci di dati e record di dati?
- 16. Dati principali: come progettare una struttura dati ad albero da una voce di dati centrale
- 17. Qual è la differenza tra dati in chiaro e binari?
- 18. Qual è la differenza tra associazione dati bidirezionale e reattività?
- 19. Una struttura dati 2D ottimale
- 20. uno può spiegare la differenza
- 21. Un puzzle sulla struttura dati
- 22. La struttura dati della corda
- 23. Puoi spiegare la differenza tra StrictMock e Partialmock?
- 24. Qualcuno può spiegare la differenza tra chiusura e funzioni anonime?
- 25. migliore struttura dati per dati multidimensionali?
- 26. Struttura dati per un mondo casuale
- 27. Qual è la differenza tra un modello di visualizzazione e un oggetto di trasferimento dati?
- 28. Struttura dati Postgresql
- 29. La conversione di un tipo di dati datetime2 a un tipo di dati datetime Errore
- 30. Oracle tipo di dati timestamp
Una ** struttura dati ** è un insieme di dati considerati come un'unica entità (cosa). Un int, ad esempio, è una variabile semplice, non può essere considerato come una struttura di dati, ma una matrice è una struttura di dati (una matrice è una variabile composta). Un ** tipo di dati ** è un insieme di dati e operazioni su di essi. La principale differenza tra i due è che le operazioni non sono incluse nel primo caso. Un ** tipo di dati astratto ** è un modello matematico di una struttura di dati e operazioni su di essi.In altre parole, un ADT è un'interfaccia per ciò che un DS è l'implementazione. –