76    typedef typename v_type vertex_type;
 
   77    typedef typename v_type::edge_type edge_type;
 
   96        vertices = 
new std::vector<vertex_type>(vnum);
 
 
  134            vertices = 
new std::vector<vertex_type>(vnum);
 
 
  163        for(
unsigned vi = 0; vi < 
nverts(); vi++)
 
 
  176    const vertex_type& 
vertex(
unsigned i)
const  
 
  193        for (
unsigned  i=0; i < 
vertex(start).edges.size(); i++)
 
  195            if(
vertex(start).edges[i].end == end)
 
 
  219            (*vertices)[e.start].edges.push_back(e); 
 
  226                (*vertices)[e.end].edges.push_back(e2); 
 
 
  235    bool add_edge(
unsigned int start, 
unsigned int end)
 
  242        if( start < 
nverts() && end < vertices->size())
 
  250            (*vertices)[start].edges.push_back(e); 
 
  258                (*vertices)[end].edges.push_back(e2); 
 
 
  317        std::cout<<"not tested"<<std::endl;
 
  318        vertices->push_back(v);
 
  325    bool contains(edge e){
 
  327        for (std::vector<vertex>::iterator it = vertices.begin(); it != vertices.target(); ++it) {
 
  328            for (std::vector<vertex>::iterator i = it.edges.begin(); i != it.edges.target(); ++i) {
 
  337    bool contains(vertex v){
 
  339        for (unsigned int i = 0; i < vertices->size(); i ++) {
 
  340            if ( v == (*vertices)[i])
 
  349    // outputs the list as String 
 
  351        for (unsigned int i = 0; i < vertices->size(); i++){
 
  352            std::cout<<i<<":[ "; // index of Vertex
 
  353            for (unsigned int j = 0 ; j < (*vertices)[i].edges.size();j++){
 
  354                std::cout<<(*vertices)[i].edges[j].start << "," << (*vertices)[i].edges[j].target << " "; // start and end of edges
 
  356            std::cout<<"]"<<std::endl;
 
  363    void remove(int start, int target){
 
  365            for (unsigned int i = 0;i< (*vertices)[start].edges.size(); i++){
 
  366                if((*vertices)[start].edges[i].target == target){
 
  367                    std::vector<edge>::iterator it = (*vertices)[start].edges.begin() + i;
 
  368                    (*vertices)[start].edges.erase(it);
 
  374    void remove(vertex e){
 
  375        std::cout<<"not implemented"<<std::endl;
 
  380        // delete edges to n (all from n are deleted itself)
 
  381        for(unsigned int i = 0; i< vertices->size(); i++){
 
  382            for (unsigned int j = 0;j< (*vertices)[i].edges.size(); j++){
 
  383                if((*vertices)[i].edges[j].target == n){
 
  384                    std::vector<edge>::iterator it = (*vertices)[i].edges.begin() + j;
 
  385                    (*vertices)[i].edges.erase(it);
 
  387        // and decrese all edges with start or end > n
 
  388                if((*vertices)[i].edges[j].target > n){
 
  389                    (*vertices)[i].edges[j].target -= 1; 
 
  391                if((*vertices)[i].edges[j].start > n){
 
  392                    (*vertices)[i].edges[j].start -= 1; 
 
  397        std::vector<vertex>::iterator it = vertices->begin() + n;