libpasc-algorithms는 델파이 및 공통 데이터 구조 및 알고리즘의 객체 파스칼 라이브러리입니다. 라이브러리는 C-Algorithms 저장소를 기반으로하며 Pascal 언어 및 이용 가능한 템플릿 시스템에 적합한 컨테이너 세트입니다.
도서관이 테스트되었습니다
소스를 가져 와서 소스 디렉토리를 프로젝트 검색 경로에 추가하십시오. FPC의 경우 소스 디렉토리를 FPC.CFG 파일에 추가하십시오.
저장소 git clone https://github.com/isemenkov/libpasc-algorithms 복제하십시오.
사용하려는 단위를 uses 절에 추가하십시오.
테스트 프레임 워크는 다음 성분으로 구성됩니다.
unit-tests 디렉토리에 위치한 테스트 러너 프로젝트.Tarraylist는 T의 일반적인 배열로 자동으로 크기가 증가합니다.
uses
container.arraylist, utils.functor;
type
generic TArrayList<T, BinaryCompareFunctor> = classBinaryCompareFunctor는 utils.functor.tbinaryfunctor 인터페이스를 기반으로하며 두 배열 항목을 비교하는 데 사용됩니다. 정렬 및 검색 기능에 필요합니다.
자세한 내용은 Wiki 페이지를 참조하십시오 .
Tmultiarray는 T의 일반적인 배열로 자동으로 크기가 증가합니다.
uses
container.multiarray, utils.functor;
type
generic TMultiArray<T, BinaryCompareFunctor> = classBinaryCompareFunctor는 utils.functor.tbinaryfunctor 인터페이스를 기반으로하며 두 배열 항목을 비교하는 데 사용됩니다. 정렬 및 검색 기능에 필요합니다.
자세한 내용은 Wiki 페이지를 참조하십시오 .
TsortedArray는 요소를 정렬 된 순서로 저장하는 자동 크기 조정 어레이입니다. 사용자 정의 functor는 정렬 순서를 결정합니다. TsortedArray의 모든 작업은 분류 된 속성을 유지합니다. 대부분의 작업은 O (N) 시간으로 수행되지만 검색은 O (log n) 최악의 경우를 수행 할 수 있습니다.
uses
container.sortedarray, utils.functor;
type
generic TSortedArray<T, BinaryCompareFunctor> = classBinaryCompareFunctor는 utils.functor.tbinaryfunctor 인터페이스를 기반으로하며 두 배열 항목을 비교하는 데 사용됩니다. 검색 기능에 필요합니다.
자세한 내용은 Wiki 페이지를 참조하십시오 .
이중 연결 목록은 값 모음을 저장합니다. 목록의 각 항목에는 다음 항목 및 이전 항목에 대한 링크가 포함되어 있습니다. 따라서 목록의 항목을 어느 방향 으로든 반복 할 수 있습니다.
uses
container.list, utils.functor;
type
generic TList<T, BinaryCompareFunctor> = classBinaryCompareFunctor는 utils.functor.tbinaryfunctor 인터페이스를 기반으로하며 두 개의 목록 항목을 비교하는 데 사용됩니다. 정렬 및 검색 기능에 필요합니다.
자세한 내용은 Wiki 페이지를 참조하십시오 .
AVL 트리 구조는 노드 모음을 저장하는 균형 이진 트리입니다. 각 노드에는 키와 관련 값이 있습니다. 노드는 키의 순서에 따라 트리 내에서 정렬됩니다. 트리에 대한 수정은 트리의 항상 균형을 유지하도록 구성됩니다 (트리의 양쪽에 항상 거의 같은 수의 노드가 있습니다).
균형 잡힌 이진 트리에는 몇 가지 용도가 있습니다. 매핑 (키를 기준으로 값 검색) 또는 항상 주문되는 키 세트로 사용할 수 있습니다.
uses
container.avltree;
type
generic TAvlTree<K, V, KeyBinaryCompareFunctor> = classkeybinarycomparefunctor는 utils.functor.tbinaryfunctor 인터페이스를 기반으로하며 두 키를 비교하는 데 사용됩니다.
자세한 내용은 Wiki 페이지를 참조하십시오 .
해시 테이블은 키로 해결할 수있는 일련의 값을 저장합니다. 키가 주어지면 해당 값을 빨리 찾아 볼 수 있습니다.
uses
container.hashtable, utils.functor;
type
generic THashTable<K, V, KeyBinaryCompareFunctor> = classkeybinarycomparefunctor는 utils.functor.tbinaryfunctor 인터페이스를 기반으로하며 두 키를 비교하는 데 사용됩니다.
자세한 내용은 Wiki 페이지를 참조하십시오 .
멀티 해시 테이블은 키로 해결할 수있는 일련의 값을 저장합니다. 키가 주어지면 해당 값을 빨리 찾아 볼 수 있습니다.
uses
container.hashtable, container.multihash, utils.functor;
type
generic TMultiHash<K, V, KeyBinaryCompareFunctor, ValueBinaryCompareFunctor> = classkeybinarycomparefunctor 및 ValueBinaryCompareFunctor는 utils.functor.tbinaryfunctor 인터페이스를 기반으로하며 두 키를 비교하는 데 사용됩니다.
자세한 내용은 Wiki 페이지를 참조하십시오 .
세트는 값 모음을 저장합니다. 각 값은 세트에서 한 번만 존재할 수 있습니다.
uses
container.orderedset, utils.functor;
type
generic TOrderedSet<V, BinaryCompareFunctor> = classBinaryCompareFunctor는 utils.functor.tbinaryfunctor 인터페이스를 기반으로하며 두 항목을 비교하는 데 사용됩니다.
자세한 내용은 Wiki 페이지를 참조하십시오 .
힙 유형. 우선 순위가 가장 낮은 값은 힙 상단에 저장되며 처음으로 반환됩니다.
uses
container.binaryheap, utils.functor;
type
generic TMinBinaryHeap<V, BinaryCompareFunctor> = classBinaryCompareFunctor는 utils.functor.tbinaryfunctor 인터페이스를 기반으로하며 두 항목을 비교하는 데 사용됩니다.
자세한 내용은 Wiki 페이지를 참조하십시오 .
힙 유형. 우선 순위가 가장 높은 값은 힙 상단에 저장되며 처음으로 반환됩니다.
uses
container.binaryheap, utils.functor;
type
generic TMaxBinaryHeap<V, BinaryCompareFunctor> = classBinaryCompareFunctor는 utils.functor.tbinaryfunctor 인터페이스를 기반으로하며 두 항목을 비교하는 데 사용됩니다.
자세한 내용은 Wiki 페이지를 참조하십시오 .
트리는 문자열에서 값으로 빠른 매핑을 제공하는 데이터 구조입니다.
uses
container.trie;
type
generic TTrie<V> = class자세한 내용은 Wiki 페이지를 참조하십시오 .
이중 종료 큐는 순서대로 값 목록을 저장합니다. 큐의 양쪽 끝에서 새로운 값을 추가하고 제거 할 수 있습니다.
uses
container.queue;
type
generic TQueue<T> = class자세한 내용은 Wiki 페이지를 참조하십시오 .
TmemoryBuffer는 임의 크기의 메모리 블록을 저장하는 데 유용한 데이터 구조입니다. 물체가 파괴 될 때 메모리 블록의 삭제를 보장합니다. 이 클래스는 wxmorybuffer api 인터페이스 https://docs.wxwidgets.org/trunk/classwx_memory_buffer.html을 기반으로합니다.
uses
container.memorybuffer;
type
TMemoryBuffer = class자세한 내용은 Wiki 페이지를 참조하십시오 .