Wyjaśnij różnicę między danymi * strukturą * a danymi *typem *[zamknięte]

Podczas próby odpowiedzi Jaka jest różnica między złożonym typem danych a strukturą danych? Zdałem sobie sprawę, że chociaż mam jasne pojęcie, czym jest typ danych i jak to nie jest to samo, co struktura danych , nie mogę umieścić różnicę w słowach. Gdybyś uczył intro kursu CS, jak wyjaśniłbyś różnicę?

Author: Community, 2011-01-08

3 answers

Struktura danych jest abstrakcyjnym opisem sposobu organizacji danych, aby umożliwić wydajne wykonywanie pewnych operacji na nich. Na przykład drzewo binarne jest strukturą danych, podobnie jak sterta Fibonacciego, drzewo AVL lub lista skiplist. Teoretycy opisują struktury danych i udowadniają ich właściwości, aby pokazać, że pewne algorytmy lub problemy mogą być skutecznie rozwiązywane przy określonych założeniach.

A data type jest (potencjalnie nieskończoną) klasą konkretne obiekty, które mają wspólną własność. Na przykład "integer" jest typem danych zawierającym wszystkie nieskończenie wiele liczb całkowitych, "string" jest typem danych zawierającym wszystkie nieskończenie wiele łańcuchów, a "32-bit integer" jest typem danych zawierającym wszystkie liczby całkowite wyrażalne w trzydziestu dwóch bitach. Nie ma wymogu, aby Typ danych był prymitywny w języku - na przykład w C++, typ int jest prymitywny, podobnie jak ten:

struct MyStruct {
    int x, y;
};

W tym przypadku, MyStruct jest typem danych reprezentuje wszystkie możliwe Obiekty oznaczone MyStruct, które mają w sobie dwa intS oznaczone x i y.

Możliwe jest posiadanie typu danych reprezentującego wszystkie możliwe wystąpienia struktury danych. Na przykład można zakodować binarne drzewo wyszukiwania za pomocą tego typu danych:

struct BST {
    int data;
    BST* left, *right;
};

W skrócie, struktura danych jest obiektem matematycznym z pewnym zbiorem właściwości, które mogą być realizowane na wiele różnych sposobów jako typy danych . a data type to po prostu Klasa wartości, które można konkretnie konstruować i reprezentować.

 36
Author: templatetypedef,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-07 21:26:35

Typ danych nie może być już redukowany, podczas gdy struktura danych może, ponieważ składa się z wielu pól różnych danych.

Jednak najprawdopodobniej użyłbym analogii - typ danych to atom, podczas gdy struktury danych to cząsteczki. (tak, wiem, Atomy można podzielić itp, ale analogia powinna trzymać się celu).

 7
Author: Femaref,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-07 21:23:07

Typ danych jest dowolnym typem zawierającym typy bazowe, takie jak int, ale także rozszerzające się na struktury. struktury zawsze składają się z typów bazowych i/lub innych struktur.

Int jest więc typem danych, ale nie strukturą. Natomiast struct point { int x; int y;} jest zarówno strukturą, jak i typem danych.

 3
Author: jun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-07 21:22:11