Libpasc-algoritma adalah Delphi dan Perpustakaan Pascal Object dari Struktur dan Algoritma Data Umum. Perpustakaan didasarkan pada repositori C-algoritma dan itu adalah satu set wadah yang diadaptasi untuk bahasa Pascal dan sistem template yang tersedia di atasnya.
Perpustakaan diuji
Dapatkan sumber dan tambahkan direktori sumber ke jalur pencarian proyek. Untuk FPC, tambahkan direktori sumber ke file fpc.cfg .
Kloning git clone https://github.com/isemenkov/libpasc-algorithms .
Tambahkan unit yang ingin Anda gunakan ke klausa uses .
Kerangka pengujian terdiri dari bahan -bahan berikut:
unit-tests .Tarraylist adalah array generik T yang secara otomatis bertambah dalam ukuran.
uses
container.arraylist, utils.functor;
type
generic TArrayList<T, BinaryCompareFunctor> = classBinaryCompareFunctor didasarkan pada utils.functor.tbinaryfunctor Interface dan digunakan untuk membandingkan dua item array. Diperlukan untuk fungsi sortir dan pencarian.
Rincian lebih lanjut dibaca di halaman wiki.
TMultiArray adalah array generik array t yang secara otomatis bertambah ukuran.
uses
container.multiarray, utils.functor;
type
generic TMultiArray<T, BinaryCompareFunctor> = classBinaryCompareFunctor didasarkan pada utils.functor.tbinaryfunctor Interface dan digunakan untuk membandingkan dua item array. Diperlukan untuk fungsi sortir dan pencarian.
Rincian lebih lanjut dibaca di halaman wiki.
TsortedArray adalah array pengubah ukuran otomatis yang menyimpan elemen -elemennya dalam urutan yang diurutkan. Functor yang ditentukan pengguna menentukan urutan penyortiran. Semua operasi di TsortedArray mempertahankan properti yang diurutkan. Sebagian besar operasi dilakukan dalam waktu O (n), tetapi pencarian dapat dilakukan dalam kasus terburuk O (log n).
uses
container.sortedarray, utils.functor;
type
generic TSortedArray<T, BinaryCompareFunctor> = classBinaryCompareFunctor didasarkan pada utils.functor.tbinaryfunctor Interface dan digunakan untuk membandingkan dua item array. Diperlukan untuk fungsi pencarian.
Rincian lebih lanjut dibaca di halaman wiki.
Daftar yang terhubung dengan ganda menyimpan kumpulan nilai. Setiap entri dalam daftar berisi tautan ke entri berikutnya dan entri sebelumnya. Oleh karena itu dimungkinkan untuk mengulangi entri dalam daftar di kedua arah.
uses
container.list, utils.functor;
type
generic TList<T, BinaryCompareFunctor> = classBinaryCompareFunctor didasarkan pada utils.functor.tbinaryfunctor Interface dan digunakan untuk membandingkan dua item daftar. Diperlukan untuk fungsi sortir dan pencarian.
Rincian lebih lanjut dibaca di halaman wiki.
Struktur pohon AVL adalah pohon biner yang seimbang yang menyimpan koleksi node. Setiap node memiliki kunci dan nilai yang terkait dengannya. Node diurutkan di dalam pohon berdasarkan urutan kunci mereka. Modifikasi pada pohon dibangun sedemikian rupa sehingga pohon tetap seimbang setiap saat (selalu ada jumlah node yang kira -kira sama di kedua sisi pohon).
Pohon biner yang seimbang memiliki beberapa kegunaan. Mereka dapat digunakan sebagai pemetaan (mencari nilai berdasarkan kuncinya), atau sebagai satu set kunci yang selalu dipesan.
uses
container.avltree;
type
generic TAvlTree<K, V, KeyBinaryCompareFunctor> = classKeyBinaryCompareFunctor didasarkan pada utils.functor.tbinaryfunctor Interface dan digunakan untuk membandingkan dua tombol.
Rincian lebih lanjut dibaca di halaman wiki.
Tabel hash menyimpan satu set nilai yang dapat diatasi dengan kunci. Mengingat kunci, nilai yang sesuai dapat dilihat dengan cepat.
uses
container.hashtable, utils.functor;
type
generic THashTable<K, V, KeyBinaryCompareFunctor> = classKeyBinaryCompareFunctor didasarkan pada utils.functor.tbinaryfunctor Interface dan digunakan untuk membandingkan dua tombol.
Rincian lebih lanjut dibaca di halaman wiki.
Tabel multi hash menyimpan satu set nilai yang dapat diatasi dengan kunci. Mengingat kunci, nilai yang sesuai dapat dilihat dengan cepat.
uses
container.hashtable, container.multihash, utils.functor;
type
generic TMultiHash<K, V, KeyBinaryCompareFunctor, ValueBinaryCompareFunctor> = classKeyBinaryCompareFunctor dan ValueBinaryCompareFunctor didasarkan pada utils.functor.TbinaryFunctor Interface dan digunakan untuk membandingkan dua tombol.
Rincian lebih lanjut dibaca di halaman wiki.
Set menyimpan kumpulan nilai. Setiap nilai hanya dapat ada sekali dalam set.
uses
container.orderedset, utils.functor;
type
generic TOrderedSet<V, BinaryCompareFunctor> = classBinaryCompareFunctor didasarkan pada utils.functor.tbinaryfunctor Interface dan digunakan untuk membandingkan dua item.
Rincian lebih lanjut dibaca di halaman wiki.
Tipe tumpukan. Nilai -nilai dengan prioritas terendah disimpan di bagian atas tumpukan dan akan menjadi yang pertama dikembalikan.
uses
container.binaryheap, utils.functor;
type
generic TMinBinaryHeap<V, BinaryCompareFunctor> = classBinaryCompareFunctor didasarkan pada utils.functor.tbinaryfunctor Interface dan digunakan untuk membandingkan dua item.
Rincian lebih lanjut dibaca di halaman wiki.
Tipe tumpukan. Nilai -nilai dengan prioritas terbesar disimpan di bagian atas tumpukan dan akan menjadi yang pertama dikembalikan.
uses
container.binaryheap, utils.functor;
type
generic TMaxBinaryHeap<V, BinaryCompareFunctor> = classBinaryCompareFunctor didasarkan pada utils.functor.tbinaryfunctor Interface dan digunakan untuk membandingkan dua item.
Rincian lebih lanjut dibaca di halaman wiki.
Trie adalah struktur data yang menyediakan pemetaan cepat dari string ke nilai.
uses
container.trie;
type
generic TTrie<V> = classRincian lebih lanjut dibaca di halaman wiki.
Antrian akhir ganda menyimpan daftar nilai secara berurutan. Nilai baru dapat ditambahkan dan dihapus dari kedua ujung antrian.
uses
container.queue;
type
generic TQueue<T> = classRincian lebih lanjut dibaca di halaman wiki.
TMemoryBuffer adalah struktur data yang berguna untuk menyimpan blok memori berukuran sewenang -wenang. Ini menjamin penghapusan blok memori ketika objek dihancurkan. Kelas ini berdasarkan antarmuka API WXWIDGETS WXMemoryBuffer https://docs.wxwidgets.org/trunk/classwx_memory_buffer.html.
uses
container.memorybuffer;
type
TMemoryBuffer = classRincian lebih lanjut dibaca di halaman wiki.