Program Listing for File Matching.hpp

Return to documentation for file (include/networkit/matching/Matching.hpp)

/*
 * Matching.hpp
 *
 *  Created on: 03.12.2012
 */

#ifndef NETWORKIT_MATCHING_MATCHING_HPP_
#define NETWORKIT_MATCHING_MATCHING_HPP_

#include <networkit/auxiliary/Log.hpp>
#include <networkit/graph/Graph.hpp>
#include <networkit/structures/Partition.hpp>

namespace NetworKit {

class Matching {

public:
    Matching(count z = 0);

    void match(node u, node v);

    void unmatch(node u, node v);

    bool isMatched(node u) const;

    bool areMatched(node u, node v) const;

    bool isProper(const Graph &G) const;

    count size(const Graph &G) const;

    index mate(node v) const;

    edgeweight weight(const Graph &G) const;

    Partition toPartition(const Graph &G) const;

    std::vector<node> getVector() const;

protected:
    std::vector<node> data;
};

} /* namespace NetworKit */
#endif // NETWORKIT_MATCHING_MATCHING_HPP_