Abstrak Tipe Data: ADT dapat didefinisikan sebagai sekumpulan nilai data dan operasi terkait yang secara spesifik ditentukan independen dari implementasi tertentu. Dengan demikian Tipe Data Abstrak adalah kumpulan informasi yang terorganisir dan serangkaian operasi yang digunakan untuk mengelola informasi tersebut. Himpunan operasi menentukan antarmuka ADT. Selama ADT memenuhi persyaratan antarmuka, tidak terlalu penting bagaimana ADT diimplementasikan. Karena, dalam ADT, nilai data dan operasi didefinisikan dengan presisi matematis, dan bukan sebagai implementasi dalam bahasa komputer, kami dapat mempertimbangkan efek dari operasi, hubungan dengan tipe data abstrak lainnya apakah suatu program mengimplementasikan tipe data, dll.
Perbedaan mendasar antara tipe data abstrak (ADT) dan tipe data konkret adalah bahwa yang terakhir memungkinkan kita untuk melihat representasi konkret, sedangkan yang sebelumnya menyembunyikan representasi dari kita. ADT mungkin ADT murni atau ADT yang dapat diupdate. ADT murni adalah operasi di mana semua operasi adalah fungsi murni. Ini berarti bahwa operasi tidak memiliki efek samping. Secara khusus, mereka tidak mengubah atau memperbarui argumen input yang ada. Mereka hanya menggunakan argumen ini untuk menghasilkan output, yang merupakan nilai segar dari ADT (atau jenis lainnya). Kebanyakan jenis beton murni. Misalnya, tidak ada operasi pada bilangan bulat yang benar-benar memodifikasi bilangan bulat. Sebagai gantinya, semua operasi seperti '+' menghasilkan keluaran baru.
ADT yang dapat diperbarui adalah operasi di mana beberapa operasi benar-benar mengubah nilai ADT. Sebagai contoh, misalkan kita memiliki operasi yang disebut 'pop' yang mengambil tumpukan sebagai argumen dan memodifikasinya. ("Di tempat", "destruktif") dengan menghapus item prioritas tertinggi. Operasi ini akan dianggap tidak murni dan seluruh ADT kemudian akan menjadi tidak murni juga. ADT mungkin adalah ADT yang ditentukan pengguna.
Kita tahu bahwa Tipe Data Abstrak adalah tipe data yang memenuhi dua kondisi berikut:
Representasi, atau definisi, dari jenis dan operasi terkandung dalam unit sintaksis tunggal.
Representasi objek tipe tersembunyi dari unit program yang menggunakan tipe, jadi hanya operasi langsung yang mungkin dilakukan pada objek tersebut yang disediakan dalam definisi tipe.
Tipe Data Abstrak yang ditentukan pengguna harus menyediakan:
Definisi tipe yang memungkinkan unit program untuk mendeklarasikan variabel dari tipe, tetapi menyembunyikan representasi dari variabel-variabel ini.
Seperangkat operasi untuk memanipulasi objek jenis.
Contoh tipe data abstrak yang ditentukan pengguna adalah struktur. 'C' menyediakan empat tipe dasar: int, char, float, dan double. Namun, 'C' juga memberikan programmer dengan kemampuan untuk menentukan jenisnya sendiri. Struktur adalah salah satu contohnya. Struktur adalah agregat dari bagian yang berbeda, di mana setiap bagian dari jenis yang ada.
struct abc
{int x;
float y;
};
Definisi struktur di atas tidak membuat variabel apa pun, melainkan membuat tipe baru. Variabel jenis ini dapat dibuat dengan cara yang mirip dengan variabel tipe bawaan.
struct abc a;
Kata kunci typedef memungkinkan kita membuat nama tipe baru untuk tipe baru kita.
Sebagai contoh:
typedef struct abc AB;
di mana AB adalah nama tipe baru yang sekarang dapat digunakan untuk membuat tipe baru.
AB b;
Struktur Data: Berikut ini adalah fitur karakteristik dari struktur data:
Ini berisi komponen data komponen, yang mungkin berupa atom atau struktur data lain (masih berupa domain).
Serangkaian operasi pada satu atau lebih item komponen.
Menentukan aturan tentang bagaimana komponen terkait satu sama lain dan dengan struktur secara keseluruhan (pernyataan).
Struktur data:
Struktur data mungkin statis atau dinamis. Struktur data statis memiliki ukuran tetap. Arti ini berbeda dari arti pengubah statis. Array adalah statis; begitu kita menentukan jumlah elemen yang bisa dipegangnya, jumlahnya tidak berubah. Struktur data yang dinamis tumbuh dan menyusut pada waktu eksekusi seperti yang disyaratkan oleh kontennya. Struktur data dinamis diimplementasikan menggunakan tautan.
Struktur data selanjutnya dapat dikategorikan ke dalam struktur data linier dan struktur data non-linear. Dalam struktur data linier, setiap komponen memiliki pendahulu dan penerus yang unik, kecuali elemen pertama dan terakhir, sedangkan dalam kasus struktur data non-linear, tidak ada batasan seperti itu karena elemen dapat diatur dengan cara yang diinginkan dibatasi oleh cara yang kita gunakan untuk mewakili tipe seperti itu.