Salah satu jenis struktur data yang merupakan perwujudan langsung dari entitas matematika dalam ilmu komputer adalah himpunan. Operasi dengan mereka cukup sering mendasari berbagai algoritma. Bahasa pemrograman yang berbeda memiliki caranya sendiri untuk menggambarkan set.
Diperlukan
- - pengembangan lingkungan;
- - penerjemah dari bahasa pemrograman yang dipilih.
instruksi
Langkah 1
Jelaskan himpunan menggunakan bahasa pemrograman, jika tersedia. Sebagai contoh, dalam bahasa Pascal ada set konstruk yang memungkinkan Anda untuk mendeklarasikan tipe yang sesuai. Benar, volume set tersebut tidak boleh melebihi 256 elemen. Contoh deklarasi tipe set mungkin terlihat seperti ini:
Tipe
AZLetters = himpunan 'A'.. 'Z';
AllLetters = kumpulan karakter;
Variabel dan konstanta tipe yang merupakan himpunan dideklarasikan dengan cara biasa. Dalam hal ini, set literal dapat digunakan untuk inisialisasi. Sebagai contoh:
konstan
LettersSet1: AZLetters = ['A', 'B', 'C'];
Langkah 2
Gunakan kemampuan pustaka atau modul standar untuk mendeskripsikan kumpulan. Jadi, pustaka templat C ++, yang harus disertakan dengan kompiler, menyertakan templat untuk kelas wadah set yang mengimplementasikan fungsionalitas set:
templat <
kunci kelas, sifat kelas = kurang, pengalokasi kelas = pengalokasi
set kelas
Seperti yang Anda lihat dari daftar, argumen dari set template adalah: tipe data dari elemen himpunan, jenis objek fungsional untuk menentukan urutan elemen dalam himpunan, dan jenis pengalokasi memori. Dalam hal ini, hanya argumen pertama yang diperlukan (seperti dua lainnya, predikat biner standar lebih sedikit dan pengalokasi standar digunakan secara default).
Langkah 3
Terapkan kelas atau templat kelas yang digunakan dalam pengembangan kerangka kerja yang mengimplementasikan fungsionalitas bekerja dengan set, jika ada. Contoh alat tersebut adalah kelas templat QSet dari modul QtCore dari pustaka Qt. Kemampuannya mirip dengan wadah set STL yang dijelaskan pada langkah sebelumnya.
Langkah 4
Jelaskan set menggunakan sarana implementasi Anda sendiri. Gunakan bendera bit, disimpan dalam array dengan panjang tetap, untuk kumpulan elemen tipe sederhana dan ukuran kecil. Menerapkan kelas wadah yang ditetapkan untuk tipe data yang kompleks. Sebagai dasar, Anda dapat mengambil fungsi array asosiatif atau hashing asosiatif. Itu, pada gilirannya, dapat dibangun berdasarkan pohon pencarian biner yang menyeimbangkan diri (misalnya, pohon merah-hitam).