Source: graph/vertex.h


Annotated List
Files
Globals
Hierarchy
Index
/***************************************************************************
                          vertex.h                                
                             -------------------                                         
    begin                : Wed Sep 1 1999                                           
    copyright            : (C) 1999 by Jan Meinke                         
    email                : meinke@bigfoot.com                                     
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   * 
 *                                                                         *
 ***************************************************************************/


#ifndef VERTEX_H
#define VERTEX_H
#include <vector>
#include <list>
#include <algorithm>
#include "edge.h"

/** This class represents a vertex in a graph. It's mainly used as a reference
  * object.
  *
  *@author Jan Meinke
  */
class Vertex {

public:
	Vertex();
	~Vertex();
  /**  Adds the given edge to outEdges if the origin
 * of it is equal to this.
 */
  void registerEdge(Edge* edge);

  friend bool operator==(const Vertex& u, const Vertex& v){
  	return (&u == &v);
  }
  /** Removes the edge from the list of outgoing edges. This basically removes the
   * edge from the graph.
   */
  void unregisterEdge(Edge* e);

public: // Private attributes
  /**  Keeps track of the Edges originating in this
   * vertex.
   */
  list<Edge*> outEdges;

public: // Public attributes
  /** Stores the predecessor vertex used in algorithms
   *  like Dijkstra's shortes path. */
  Vertex* predecessor;
  Vertex* predecessor2;
  /**  */
  int distance;
  int distance2;
  /**  Exess flow in the maximum flow algorithm.  */
  int e;

  /** A flag for several algorithms that the current
   *  vertex has already been used. */
  bool visited;
  bool visited2;
  /**  */
  bool inQueue;
};	
#endif

Generated by: meinke@orion on Mon May 8 18:18:46 2000, using kdoc 2.0a35.