assoc-heaps: removing unused and uncompleted vocab.

windows-high-dpi
John Benediktsson 2018-02-16 08:50:31 -08:00
parent a4dcc12b98
commit dbd3febbf6
6 changed files with 0 additions and 77 deletions

View File

@ -1,34 +0,0 @@
! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: help.markup help.syntax io.streams.string assocs
heaps.private ;
IN: assoc-heaps
HELP: <assoc-heap>
{ $values { "assoc" assoc } { "heap" heap } { "assoc-heap" assoc-heap } }
{ $description "Constructs a new " { $link assoc-heap } " from two existing data structures." } ;
HELP: <unique-max-heap>
{ $values { "unique-heap" assoc-heap } }
{ $description "Creates a new " { $link assoc-heap } " where the assoc is a hashtable and the heap is a max-heap. Popping an element from the heap leaves this element in the hashtable to ensure that the element will not be processed again." } ;
HELP: <unique-min-heap>
{ $values { "unique-heap" assoc-heap } }
{ $description "Creates a new " { $link assoc-heap } " where the assoc is a hashtable and the heap is a min-heap. Popping an element from the heap leaves this element in the hashtable to ensure that the element will not be processed again." } ;
{ <unique-max-heap> <unique-min-heap> } related-words
HELP: assoc-heap
{ $description "A data structure containing an assoc and a heap to get certain properties with better time constraints at the expense of more space and complexity. For instance, a hashtable and a heap can be combined into one assoc-heap to get a sorted data structure with O(1) lookup. Operations on assoc-heap may update both the assoc and the heap or leave them out of sync if it's advantageous." } ;
ARTICLE: "assoc-heaps" "Associative heaps"
"The " { $vocab-link "assoc-heaps" } " vocabulary combines exists to synthesize data structures with better time properties than either of the two component data structures alone." $nl
"Associative heap constructor:"
{ $subsections <assoc-heap> }
"Unique heaps:"
{ $subsections
<unique-min-heap>
<unique-max-heap>
} ;
ABOUT: "assoc-heaps"

View File

@ -1,11 +0,0 @@
! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: assoc-heaps combinators heaps kernel tools.test ;
{ { { 0 "zero" } { 1 "one" } { 2 "two" } } } [
<unique-min-heap>
"two" 2 pick heap-push
"zero" 0 pick heap-push
"one" 1 pick heap-push
heap-pop-all
] unit-test

View File

@ -1,29 +0,0 @@
! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs hashtables heaps kernel ;
IN: assoc-heaps
TUPLE: assoc-heap assoc heap ;
C: <assoc-heap> assoc-heap
: <unique-min-heap> ( -- unique-heap )
H{ } clone <min-heap> <assoc-heap> ;
: <unique-max-heap> ( -- unique-heap )
H{ } clone <max-heap> <assoc-heap> ;
M: assoc-heap heap-push*
pick over assoc>> key? [
3drop f
] [
[ assoc>> swapd set-at ] [ heap>> heap-push* ] 3bi
] if ;
M: assoc-heap heap-pop heap>> heap-pop ;
M: assoc-heap heap-peek heap>> heap-peek ;
M: assoc-heap heap-empty? heap>> heap-empty? ;
M: assoc-heap heap-size heap>> heap-size ;

View File

@ -1 +0,0 @@
Doug Coleman

View File

@ -1 +0,0 @@
Priority queue with fast insertion, removal of first element, and lookup of arbitrary elements by key

View File

@ -1 +0,0 @@
collections