Ketika programmer berbicara tentang "struktur data", apakah mereka hanya berbicara tentang tipe data abstrak seperti daftar , pohon , hash , grafik , dll?
Atau apakah istilah itu termasuk struktur yang menyimpan data, seperti tipe komposit (objek kelas, struct, enum, dll.) Dan tipe primitif (boolean, int, char, dll.)?
Saya hanya pernah mendengar programmer menggunakan istilah untuk referensi struktur data yang kompleks atau tipe data abstrak, namun artikel Wikipedia yang menyediakan daftar struktur data mencakup tipe komposit dan tipe primitif dalam definisi, yang bukan yang saya harapkan (bahkan meskipun itu masuk akal).
Ketika melihat-lihat online saya melihat tempat-tempat lain yang merujuk pada istilah "struktur data" dalam pengertian pemrograman karena hanya merujuk pada tipe data abstrak, seperti kuliah ini dari Departemen Ilmu Komputer Universitas Stony Brook yang menyatakan
Struktur data adalah implementasi aktual dari tipe data abstrak tertentu.
atau wikibook ini pada struktur data , yang menggunakan istilah dalam kalimat seperti ini:
Karena struktur data adalah abstraksi tingkat yang lebih tinggi, mereka hadir untuk kami operasi pada kelompok data, seperti menambahkan item ke daftar, atau mencari item prioritas tertinggi dalam antrian
Jadi mengapa saya hanya pernah mendengar programer mengacu pada struktur data yang kompleks atau tipe data abstrak ketika mereka menggunakan istilah "struktur data"? Apakah programmer memiliki definisi yang berbeda untuk istilah tersebut daripada definisi kamus?
if programmers mean something different when they talk about data structures
masih memilih pendapat.Jawaban:
Definisi umum dari "struktur data" adalah segala sesuatu yang dapat menyimpan data Anda dengan cara terstruktur, jadi ya ini akan mencakup tipe komposit dan tipe primitif selain tipe data abstrak. Sebagai contoh, a
string
adalah struktur data karena dapat menampung urutan karakter dengan cara terstruktur.Namun, istilah ini juga memiliki arti lain bagi para programmer.
Karena istilah "struktur data" begitu luas, pengembang biasanya menggunakan istilah yang lebih spesifik untuk mengidentifikasi apa yang mereka bicarakan, seperti
class
ataudata object
atauprimitive type
, dan istilah spesifik yang digunakan untuk sebagian besar tipe data yang kompleks atau abstrak adalah "struktur data"Inilah sebabnya mengapa Anda mendengar "struktur data" paling sering digunakan untuk tipe data abstrak seperti Array, Daftar, Pohon dan Hashtable, dan bukan untuk hal-hal seperti tipe data primitif
sumber
Lists
,Trees
,Graphs
, dll hanya terjadi menjadi "struktur data"Istilah ini mengacu pada keduanya, meskipun hal-hal seperti
ints
danbooleans
biasanya dianggap tipe data primitif (atau struktur data primitif). Istilah itu sendiri hanya merujuk pada apa pun yang menyimpan data dengan cara tertentu. Tentunyaint
memenuhi definisi ini dan juga sesuatu seperti tabel Hash, hanya saja lebih sederhana.Biasanya, ketika orang menggunakan struktur data, mereka merujuk pada struktur data yang lebih kompleks, dan bukan yang lebih sederhana tetapi keduanya memenuhi definisi.
sumber
int
sebagai "struktur data".Definisi paling sederhana dan sangat mendasar, yang pernah saya dengar tentang struktur data, adalah menyimpan data ke dalam memori sedemikian rupa sehingga operasi dasar seperti menyisipkan, memperbarui, menghapus dll dapat dilakukan dengan cara yang efisien dalam hal waktu dan memori.
Jadi, tipe data memberitahu tipe data yang telah kita simpan ke dalamnya. Itu bisa bilangan bulat, desimal, karakter, string atau objek. Ini bisa tipe komposit atau tipe primitif selain tipe data abstrak.
Tapi, kami menggunakan struktur data ketika kami ingin menyimpan data kompleks dalam memori. Ini adalah alasan mengapa kita hanya mendengar tentang tipe data seperti Array, Daftar, Pohon dan Hashtable, dan bukan untuk hal-hal seperti tipe data primitif
sumber