23 #ifndef SPOT_TGBAALGOS_GTEC_NSHEAP_HH
24 # define SPOT_TGBAALGOS_GTEC_NSHEAP_HH
26 # include "tgba/state.hh"
27 # include "misc/hash.hh"
38 virtual void first() = 0;
40 virtual void next() = 0;
41 virtual bool done()
const = 0;
45 virtual const state* get_state()
const = 0;
47 virtual int get_index()
const = 0;
55 typedef std::pair<const state*, int*> state_index_p;
56 typedef std::pair<const state*, int> state_index;
60 virtual state_index find(
const state* s)
const = 0;
75 virtual state_index_p find(
const state* s) = 0;
79 virtual state_index index(
const state* s)
const = 0;
87 virtual state_index_p index(
const state* s) = 0;
91 virtual void insert(
const state* s,
int index) = 0;
94 virtual int size()
const = 0;
114 virtual state_index find(
const state* s)
const;
115 virtual state_index_p find(
const state* s);
116 virtual state_index index(
const state* s)
const;
117 virtual state_index_p index(
const state* s);
119 virtual void insert(
const state* s,
int index);
120 virtual int size()
const;
124 typedef Sgi::hash_map<
const state*, int,
148 #endif // SPOT_TGBAALGOS_GTEC_NSHEAP_HH
An Equivalence Relation for state*.
Definition: state.hh:139
Factory for numbered_state_heap_hash_map.
Definition: nsheap.hh:133
Abstract class for states.
Definition: state.hh:40
Iterator on numbered_state_heap objects.
Definition: nsheap.hh:32
Abstract factory for numbered_state_heap.
Definition: nsheap.hh:101
Hash Function for state*.
Definition: state.hh:164
hash_type h
Map of visited states.
Definition: nsheap.hh:127
A straightforward implementation of numbered_state_heap with a hash map.
Definition: nsheap.hh:109
Keep track of a large quantity of indexed states.
Definition: nsheap.hh:52