https://github.com/lukaszcz/pascaladt
A library of algorithms and data structures for the Free Pascal Compiler.
https://github.com/lukaszcz/pascaladt
2-3-tree abstract-data-structures algorithms avl-tree boyer-moore delphi hash-table karp-miller-rosenberg knuth-morris-pratt pascal priority-queue splay-tree
Last synced: 3 months ago
JSON representation
A library of algorithms and data structures for the Free Pascal Compiler.
- Host: GitHub
- URL: https://github.com/lukaszcz/pascaladt
- Owner: lukaszcz
- License: lgpl-2.1
- Created: 2021-09-25T21:28:05.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-08-10T17:12:14.000Z (9 months ago)
- Last Synced: 2025-01-09T02:34:04.344Z (4 months ago)
- Topics: 2-3-tree, abstract-data-structures, algorithms, avl-tree, boyer-moore, delphi, hash-table, karp-miller-rosenberg, knuth-morris-pratt, pascal, priority-queue, splay-tree
- Language: Pascal
- Homepage:
- Size: 387 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: NEWS
- License: LICENSE
Awesome Lists containing this project
README
[PascalAdt](https://pascaladt.github.io) is a library of data
structures and algorithms for Free Pascal inspired by the C++ STL
library.Features
--------
* STL-like class hierarchies of containers, iterators and functors.
* Automatic memory management for iterators.
* Dynamic array containers.
* Linked lists: singly linked, doubly linked and xor linked lists.
* Double-ended queues: circular and segmented.
* Search trees: AVL trees, splay trees, 2-3-trees.
* Hash tables: open and closed.
* Priority queues: binomial heaps.
* Sorting algorithms: quick sort, merge sort, shell sort, insertion sort.
* Selection algorithms: Hoare, Blum-Floyd-Pratt-Rivest-Tarjan.
* String algorithms: Knuth-Morris-Pratt, Boyer-Moore, Karp-Miller-Rosenberg.
* Sequence algorithms: binary search, interpolation seach, partition,
merge, random shuffle, etc.Requirements
------------
* [Free Pascal](https://www.freepascal.org).
* Linux (should work on other systems, but the installation and
compilation scripts might need adjusting).
* C compiler to compile the [MCP](https://github.com/lukaszcz/mcp) macro processor.Installation and usage
----------------------
* Compilation: `make`
* Tests: `make test`
* Installation: `make install`
* [Demo](demo/customer/customer.pas) compilation: `make demo`Documentation
-------------[PascalAdt documentation](https://pascaladt.github.io/pascaladt-docs/index.html) is available at the [PascalAdt webpage](https://pascaladt.github.io/). It includes a tutorial and the API documentation auto-generated from sources with the [SrcDoc](https://github.com/lukaszcz/srcdoc/) program.
See also [docsrc/tutorial.txt](docsrc/tutorial.txt) and [demo/customer/customer.pas](demo/customer/customer.pas).
Copyright and license
---------------------Copyright (C) 2004-2024 Lukasz Czajka
Distributed under LGPL 2.1. See [LICENSE](LICENSE).