//==================================================================
// File: labeledVertex.h
// Author: Timothy A. Budd
// Platform: Cfront
// Description: Template Description of labeled graph vertex
// Copyright (c) 1992 by Timothy A. Budd, All Rights Reserved
// Permission granted for duplication if not for profit
//==================================================================
# ifndef labeldVertexH
# define labeldVertexH
//
// weighted graph vertices
//
# include
//
// class labeledVertex
// vertex maintaining arcs with edge weights
//
template class labeledVertex {
public:
T value;
// constructors
labeledVertex();
labeledVertex(T init);
labeledVertex(const labeledVertex & x);
// collect the set of neighbor arcs
dictionary arcs;
// add an arc
void addArc(labeledVertex * to, A label);
};
template int operator ==
(const labeledVertex & left, const labeledVertex & right);
template
labeledVertex::labeledVertex()
{
}
template
labeledVertex::labeledVertex(T init) : value(init)
{
}
template
labeledVertex::labeledVertex(const labeledVertex & x)
: value(x.value)
{
}
template
void labeledVertex::addArc(labeledVertex * to, A label)
{
arcs[to] = label;
}
template int operator ==
(const labeledVertex & left, const labeledVertex & right)
{
return left.value == right.value;
}
# endif