Khi cố gắng trả lời What is the difference between a composite data type and a data structure? Tôi nhận ra rằng mặc dù tôi có ý tưởng rõ ràng về loại dữ liệu là và cách không giống như một cấu trúc cấu trúc, tôi không thể đặt sự khác biệt thành các từ. Nếu bạn đang dạy một khóa học CS giới thiệu, bạn sẽ giải thích sự khác biệt như thế nào?Giải thích sự khác biệt giữa cấu trúc * dữ liệu * và loại dữ liệu *
Trả lời
Dữ liệu cấu trúc là mô tả trừu tượng về cách tổ chức dữ liệu để cho phép các hoạt động nhất định trên đó được thực hiện hiệu quả. Ví dụ, một cây nhị phân là một cấu trúc dữ liệu, như là một đống Fibonacci, cây AVL hoặc skiplist. Các nhà lý thuyết mô tả các cấu trúc dữ liệu và chứng minh các thuộc tính của chúng để cho thấy rằng các thuật toán hoặc các vấn đề nhất định có thể được giải quyết một cách hiệu quả theo các giả định nhất định.
Một dữ liệu loại là một lớp (có thể vô hạn) của các đối tượng cụ thể mà tất cả đều chia sẻ một số thuộc tính. Ví dụ, "số nguyên" là kiểu dữ liệu chứa tất cả các số nguyên vô hạn, "chuỗi" là kiểu dữ liệu chứa tất cả các chuỗi vô hạn và "số nguyên 32 bit" là kiểu dữ liệu chứa tất cả các số nguyên có thể hiển thị trong ba mươi -two bit. Không có yêu cầu rằng một kiểu dữ liệu là một nguyên thủy bằng một ngôn ngữ - ví dụ, trong C++, loại int
là một nguyên thủy, như là cái này:
struct MyStruct {
int x, y;
};
Trong trường hợp này, MyStruct
là một kiểu dữ liệu đại diện tất cả các đối tượng có thể được gắn nhãn MyStruct
có hai số int
trong các nhãn được gắn nhãn x
và y
.
Có thể có loại dữ liệu thể hiện tất cả các trường hợp có thể có của cấu trúc dữ liệu. Ví dụ, bạn có thể mã hóa một cây tìm kiếm nhị phân với kiểu dữ liệu này:
struct BST {
int data;
BST* left, *right;
};
Nói tóm lại, một dữ liệu cấu trúc là một đối tượng toán học với một số bộ thuộc tính có thể được thực hiện bằng nhiều cách khác nhau như dữ liệu loại. Một dữ liệu loại chỉ là một loại giá trị có thể được xây dựng và trình bày cụ thể.
Thưa ông, tôi không hiểu sự khác nhau giữa kiểu dữ liệu trừu tượng và kiểu dữ liệu là gì? –
loại dữ liệu là bất kỳ loại nào bao gồm các loại cơ sở thích int mà còn mở rộng đến cấu trúc. cấu trúc luôn được tạo thành từ các loại cơ sở và/hoặc các cấu trúc khác.
Vì vậy, int là kiểu dữ liệu chứ không phải cấu trúc. Trong khi đó struct point {int x; int y; } là cả một cấu trúc và một kiểu dữ liệu.
Có một ý nghĩa phổ biến khác về cấu trúc dữ liệu so với cấu trúc ngôn ngữ C. * struct * - xem câu trả lời của templatetypedef dưới đây. –
nó cũng có thể là một lớp học về cơ bản là một cấu trúc với các phương thức. vậy thì sao? – jun
Không thể giảm loại dữ liệu nữa, trong khi cấu trúc dữ liệu có thể, vì nó bao gồm nhiều trường dữ liệu khác nhau.
Tuy nhiên, rất có thể, tôi sẽ sử dụng sự tương tự - một kiểu dữ liệu là một nguyên tử, trong khi cấu trúc dữ liệu là các phân tử. (vâng, tôi biết, các nguyên tử có thể được phân chia vv, nhưng sự tương tự nên giữ cho mục đích này).
Tuyệt vời !!! Cảm ơn!!! – beginner
- 1. Sự khác biệt giữa cấu trúc dữ liệu tĩnh và động
- 2. Sự khác biệt giữa cấu trúc dữ liệu Cây và đồ thị là gì?
- 3. Java: Sự khác biệt giữa bộ sưu tập và 'Cấu trúc dữ liệu'
- 4. Cấu trúc và cấu trúc dữ liệu khác nhau
- 5. Sự khác nhau giữa một kiểu dữ liệu trừu tượng (ADT) và một cấu trúc dữ liệu là gì?
- 6. java.util.Stack cấu trúc dữ liệu thích hợp?
- 7. Loại dữ liệu cấu trúc trong Mathematica?
- 8. Sự khác biệt giữa String.getBytes() và Bytes.toBytes (Dữ liệu chuỗi)
- 9. Sự khác biệt giữa tập dữ liệu và cơ sở dữ liệu là gì?
- 10. Sự khác biệt giữa loại và loại dữ liệu trong Haskell là gì?
- 11. Thuật toán và cấu trúc dữ liệu
- 12. Cách cấu trúc dữ liệu Firebase và quy tắc chia sẻ dữ liệu giữa người dùng?
- 13. liên tục và cấu trúc dữ liệu không thay đổi
- 14. Công cụ khác biệt dữ liệu để tìm sự khác biệt giữa hai Tệp MDB Access
- 15. Sự khác biệt giữa Loại và Thực thể trong kho dữ liệu GAE?
- 16. Cấu trúc dữ liệu C#
- 17. Làm thế nào để giải thích cho ai đó rằng một cấu trúc dữ liệu không nên tự vẽ, giải thích sự tách biệt các mối quan tâm?
- 18. Sự khác nhau giữa cơ sở dữ liệu và kho dữ liệu là gì?
- 19. Giải thích về mã Ruby để xây dựng Trie cấu trúc dữ liệu
- 20. Sự khác biệt giữa cấu trúc trong C và C++
- 21. Tái cấu trúc lớp dữ liệu
- 22. Tạo cấu trúc dữ liệu như cấu trúc dữ liệu trong Java
- 23. C: Cấu trúc dữ liệu căn chỉnh
- 24. Sự khác biệt giữa mẫu Đối tượng Giá trị và mẫu Truyền Dữ liệu
- 25. Sự khác biệt giữa Cơ sở dữ liệu Quan hệ và Không Quan hệ là gì?
- 26. Cấu trúc dữ liệu cây và đồ thị trong ruby
- 27. Sự khác biệt giữa nguồn dữ liệu "jta-datasource" và nguồn dữ liệu "tài nguyên cục bộ"?
- 28. Cấu trúc dữ liệu cây Postgresql
- 29. Java câu hỏi cấu trúc dữ liệu
- 30. Mẫu cấu trúc dữ liệu RESTful
Cấu trúc dữ liệu ** ** là tập dữ liệu được coi là một thực thể (điều). Một int, ví dụ, là một biến đơn giản, không thể được xem như là một cấu trúc dữ liệu, nhưng một mảng là một cấu trúc dữ liệu (một mảng là một biến được soạn thảo). Kiểu dữ liệu ** ** là tập hợp dữ liệu và thao tác trên chúng. Sự khác biệt chính giữa hai là các hoạt động không được bao gồm trong trường hợp đầu tiên. ** Kiểu dữ liệu trừu tượng ** là một mô hình toán học về cấu trúc dữ liệu và các thao tác trên chúng.Nói cách khác, một ADT là một giao diện cho những gì DS thực hiện. –