spot 2.16
Loading...
Searching...
No Matches
unionfind.hh
1// -*- coding: utf-8 -*-
2// Copyright (C) by the Spot authors, see the AUTHORS file for details.
3//
4// This file is part of Spot, a model checking library.
5//
6// Spot is free software; you can redistribute it and/or modify it
7// under the terms of the GNU General Public License as published by
8// the Free Software Foundation; either version 3 of the License, or
9// (at your option) any later version.
10//
11// Spot is distributed in the hope that it will be useful, but WITHOUT
12// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
14// License for more details.
15//
16// You should have received a copy of the GNU General Public License
17// along with this program. If not, see <http://www.gnu.org/licenses/>.
18
19#pragma once
20
21#include <spot/misc/common.hh>
22#include <vector>
23
24namespace spot
25{
26
33 class SPOT_API int_unionfind final
34 {
35 private:
36 // Store the parent relation, i.e. -1 or x < id.size()
37 std::vector<int> id;
38
39 // id of a specially managed partition of "dead" elements
40 const int DEAD = 0;
41
42 int root(int i);
43
44 public:
48 void makeset(int e);
51 bool unite(int e1, int e2);
53 void markdead(int e);
55 bool sameset(int e1, int e2);
57 bool isdead(int e);
58 };
59}
This Union-Find data structure is a particular union-find, dedicated for emptiness checks below,...
Definition unionfind.hh:34
bool unite(int e1, int e2)
Unite the sets containing e1 and e2; return true if they were different.
bool isdead(int e)
Check if element is marked as dead.
bool sameset(int e1, int e2)
Check if elements are in the same set.
void makeset(int e)
Create a new singleton set containing element e.
void markdead(int e)
Mark element e as dead.
int_unionfind()
Default constructor.
Definition automata.hh:26

Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.
Generated on Fri Feb 27 2015 10:00:07 for spot by doxygen 1.9.8