Kiểu dữ liệu trừu tượng: ADT có thể được định nghĩa là một tập hợp các giá trị dữ liệu và các hoạt động liên quan được chỉ định chính xác độc lập với bất kỳ triển khai cụ thể nào. Do đó, Kiểu dữ liệu trừu tượng là một tập hợp thông tin có tổ chức và một tập hợp các hoạt động được sử dụng để quản lý thông tin đó. Tập hợp các hoạt động xác định giao diện của ADT. Miễn là ADT đáp ứng các điều kiện của giao diện, việc ADT được triển khai thực sự không quan trọng. Vì trong ADT, các giá trị dữ liệu và thao tác được xác định với độ chính xác toán học, thay vì thực hiện bằng ngôn ngữ máy tính, chúng tôi có thể lý giải về tác động của các hoạt động, quan hệ với các loại dữ liệu trừu tượng khác cho dù chương trình có thực hiện kiểu dữ liệu, v.v.
Sự khác biệt cơ bản giữa kiểu dữ liệu trừu tượng (ADT) và kiểu dữ liệu cụ thể là kiểu sau cho phép chúng ta xem xét biểu diễn cụ thể, trong khi kiểu trước ẩn dấu đại diện khỏi chúng ta. Một ADT có thể là ADT thuần túy hoặc ADT cập nhật. Một ADT thuần túy là một trong đó tất cả các hoạt động là các hàm thuần túy. Điều này có nghĩa là các hoạt động không có tác dụng phụ. Cụ thể, họ không sửa đổi hoặc cập nhật các đối số đầu vào. Họ chỉ sử dụng các đối số này để tạo đầu ra, là các giá trị mới của ADT (hoặc của các loại khác). Hầu hết các loại bê tông là tinh khiết. Ví dụ, không có thao tác nào trên số nguyên thực sự sửa đổi một số nguyên. Thay vào đó, tất cả các hoạt động như '+' tạo ra kết quả đầu ra mới.
Một ADT có thể cập nhật là một trong đó một số thao tác thực sự thay đổi giá trị của ADT. Ví dụ: giả sử chúng tôi có một hoạt động được gọi là 'pop', lấy một ngăn xếp làm đối số và sửa đổi nó. (Tại địa điểm, thành phố, một khu vực khác, có thể loại bỏ mục ưu tiên cao nhất. Hoạt động này sẽ được coi là không tinh khiết và toàn bộ ADT sau đó cũng sẽ không trong sạch. Một ADT có thể được người dùng xác định ADT.
Chúng tôi biết rằng Kiểu dữ liệu trừu tượng là loại dữ liệu thỏa mãn hai điều kiện sau:
Biểu diễn hoặc định nghĩa của loại và các hoạt động được chứa trong một đơn vị cú pháp duy nhất.
Việc biểu diễn các đối tượng của loại được ẩn khỏi các đơn vị chương trình sử dụng loại đó, do đó chỉ các hoạt động trực tiếp có thể có trên các đối tượng đó là những hoạt động được cung cấp trong định nghĩa của loại.
Một kiểu dữ liệu trừu tượng do người dùng định nghĩa sẽ cung cấp:
Một định nghĩa kiểu cho phép các đơn vị chương trình khai báo các biến của kiểu, nhưng ẩn biểu diễn của các biến này.
Một tập hợp các thao tác để thao tác các đối tượng của loại.
Một ví dụ về kiểu dữ liệu trừu tượng do người dùng định nghĩa là cấu trúc. 'C' cung cấp bốn loại cơ bản: int, char, float và double. Tuy nhiên, 'C' cũng cung cấp cho người lập trình khả năng xác định loại của riêng anh ta / cô ta. Cấu trúc là một ví dụ như vậy. Một cấu trúc là một tập hợp của các phần khác nhau, trong đó mỗi phần là một số loại hiện có.
struct abc
{int x;
float y;
};
Định nghĩa cấu trúc ở trên không tạo ra bất kỳ biến nào, thay vào đó nó tạo ra một kiểu mới. Các biến có kiểu này có thể được tạo theo cách tương tự với các biến có kiểu dựng sẵn.
struct abc a;
Từ khóa typedef cho phép chúng tôi tạo tên loại mới cho các loại mới.
Ví dụ:
typedef struct abc AB;
Trong đó AB là một tên loại mới hiện có thể được sử dụng để tạo các loại mới.
AB b;
Cấu trúc dữ liệu: Sau đây là các tính năng đặc trưng của cấu trúc dữ liệu:
Nó chứa các mục dữ liệu thành phần, có thể là nguyên tử hoặc cấu trúc dữ liệu khác (vẫn là một miền).
Một tập hợp các hoạt động trên một hoặc nhiều mục thành phần.
Xác định các quy tắc về cách các thành phần liên quan với nhau và với toàn bộ cấu trúc (các xác nhận).
Cấu trúc dữ liệu:
Một cấu trúc dữ liệu có thể là tĩnh hoặc động. Một cấu trúc dữ liệu tĩnh có kích thước cố định. Ý nghĩa này khác với ý nghĩa của công cụ sửa đổi tĩnh. Mảng là tĩnh; một khi chúng ta xác định số lượng phần tử có thể giữ, số đó không thay đổi. Một cấu trúc dữ liệu động phát triển và co lại tại thời điểm thực hiện theo yêu cầu của nội dung của nó. Một cấu trúc dữ liệu động được thực hiện bằng các liên kết.
Cấu trúc dữ liệu có thể được phân loại thành cấu trúc dữ liệu tuyến tính và cấu trúc dữ liệu phi tuyến tính. Trong cấu trúc dữ liệu tuyến tính, mọi thành phần đều có tiền thân và kế thừa duy nhất, ngoại trừ các yếu tố đầu tiên và cuối cùng, trong khi đó trong cấu trúc dữ liệu phi tuyến tính, không có hạn chế nào như vậy vì các yếu tố có thể được sắp xếp theo bất kỳ cách nào mong muốn bị hạn chế bởi cách chúng ta sử dụng đại diện cho các loại như vậy.