COIN-OR::LEMON - Graph Library

Changeset 15:e41c71268807 in lemon-0.x for src/work


Ignore:
Timestamp:
01/16/04 12:20:09 (21 years ago)
Author:
marci
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@28
Message:

new method for making invalid iterators: make_invalid()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/work/marci_graph_concept.txt

    r10 r15  
    2323graf es iterator tipusok:
    2424
    25 class list_graph         
    26 
    27 class node_iterator     
     25class list_graph;       
     26
     27class node_iterator;     
    2828trivialis node iterator, csak cimezni lehet vele, pl property vectort
    2929
    30 class each_node_iterator
     30class each_node_iterator;
    3131node iterator a graf pontjainak bejarasara, node_iterator-a konvertalhato
    3232
    33 class edge_iterator
     33class edge_iterator;
    3434trivialis edge iterator, csak cimezni lehet vele, pl property vectort
    3535
    36 class each_edge_iterator
     36class each_edge_iterator;
    3737edge iterator a graf osszes elenek bejarasara
    3838
    39 class out_edge_iterator
     39class out_edge_iterator;
    4040edge iterator 1 pont ki eleinek bejarasara, edge_iterator-a konvertalhato
    4141
    42 class in_edge_iterator
     42class in_edge_iterator;
    4343edge iterator 1 pont be eleinek bejarasara, edge_iterator-a konvertalhato
    4444     
    45 class sym_edge_iterator
     45class sym_edge_iterator;
    4646edge iterator 1 pont be es ki eleinek bejarasara, edge_iterator-a konvertalhato
    4747
    4848default constructor:
    4949
    50 list_graph() 
     50list_graph();
    5151   
    5252A graf osztaly fobb publikus metodusai, az alapveto hasznalathoz:
     
    5959esetleg majd szamuzzuk a concept-bol, s akkor nem nesz baj.
    6060
    61 each_node_iterator first_node()
    62 each_edge_iterator first_edge()
    63 out_edge_iterator first_out_edge(const node_iterator&)
    64 in_edge_iterator first_in_edge(const node_iterator&)
    65 sym_edge_iterator first_sym_edge(const node_iterator&)
    66 
    67 node_iterator tail(const edge_iterator&)
    68 node_iterator head(const edge_iterator&)
    69 
    70 node_iterator a_node(const out_edge_iterator&)
    71 node_iterator a_node(const in_edge_iterator&)
    72 node_iterator a_node(const sym_edge_iterator&)
     61each_node_iterator first_node();
     62each_edge_iterator first_edge();
     63out_edge_iterator first_out_edge(const node_iterator&);
     64in_edge_iterator first_in_edge(const node_iterator&);
     65sym_edge_iterator first_sym_edge(const node_iterator&);
     66
     67node_iterator tail(const edge_iterator&);
     68node_iterator head(const edge_iterator&);
     69
     70node_iterator a_node(const out_edge_iterator&);
     71node_iterator a_node(const in_edge_iterator&);
     72node_iterator a_node(const sym_edge_iterator&);
    7373//az out, in or sym edge iterator rogzitett pontjara ad 1 node_iterator-t
    7474
    75 node_iterator b_node(const out_edge_iterator&)
    76 node_iterator b_node(const in_edge_iterator&)
    77 node_iterator b_node(const sym_edge_iterator&)
     75node_iterator b_node(const out_edge_iterator&);
     76node_iterator b_node(const in_edge_iterator&);
     77node_iterator b_node(const sym_edge_iterator&);
    7878//az out, in or sym edge iterator nem rogzitett pontjara ad 1 node_iterator-t
    7979
    80 node_iterator invalid_node()
    81 edge_iterator invalid_edge()
    82 out_edge_iterator invalid_out_edge()
    83 in_edge_iterator invalid_in_edge()
    84 sym_edge_iterator invalid_sym_edge()
     80//node_iterator invalid_node();
     81//edge_iterator invalid_edge();
     82//out_edge_iterator invalid_out_edge();
     83//in_edge_iterator invalid_in_edge();
     84//sym_edge_iterator invalid_sym_edge();
    8585
    8686//az iteratorok ures konstruktorai meghatarozatlan
     
    9191Kiserleti cellal ugyanezen fv-ek mas stilusu megvalositasai:
    9292
    93 void get_first(each_node_iterator&)
    94 void get_first(each_edge_iterator&)
    95 void get_first(out_edge_iterator&, const node_iterator&)
    96 void get_first(in_edge_iterator&, const node_iterator&)
    97 void get_first(sym_edge_iterator&, const node_iterator&)
    98 
    99 void get_tail(node_iterator&, const edge_iterator&)
    100 void get_head(node_iterator&, const edge_iterator&)
    101 
    102 void get_a_node(node_iterator&, const out_edge_iterator&)
    103 void get_a_node(node_iterator&, const in_edge_iterator&)
    104 void get_a_node(node_iterator&, const sym_edge_iterator&)
     93void get_first(each_node_iterator&);
     94void get_first(each_edge_iterator&);
     95void get_first(out_edge_iterator&, const node_iterator&);
     96void get_first(in_edge_iterator&, const node_iterator&);
     97void get_first(sym_edge_iterator&, const node_iterator&);
     98
     99void get_tail(node_iterator&, const edge_iterator&);
     100void get_head(node_iterator&, const edge_iterator&);
     101
     102void get_a_node(node_iterator&, const out_edge_iterator&);
     103void get_a_node(node_iterator&, const in_edge_iterator&);
     104void get_a_node(node_iterator&, const sym_edge_iterator&);
    105105   
    106 void get_b_node(node_iterator&, const out_edge_iterator&)
    107 void get_b_node(node_iterator&, const in_edge_iterator&)
    108 void get_b_node(node_iterator&, const sym_edge_iterator&)
    109  
    110 void get_invalid(node_iterator&)
    111 void get_invalid(edge_iterator&)
    112 void get_invalid(out_edge_iterator&)
    113 void get_invalid(in_edge_iterator&)
    114 void get_invalid(sym_edge_iterator&)
     106void get_b_node(node_iterator&, const out_edge_iterator&);
     107void get_b_node(node_iterator&, const in_edge_iterator&);
     108void get_b_node(node_iterator&, const sym_edge_iterator&);
     109 
     110//void get_invalid(node_iterator&);
     111//void get_invalid(edge_iterator&);
     112//void get_invalid(out_edge_iterator&);
     113//void get_invalid(in_edge_iterator&);
     114//void get_invalid(sym_edge_iterator&);
    115115 
    116116Pontok azonositasara de meginkabb property vectorokhoz:
    117117
    118 int id(const node_iterator&)
    119 int id(const edge_iterator&)
     118int id(const node_iterator&);
     119int id(const edge_iterator&);
    120120
    121121Pontok es elek hozzaadasanak metodusai:
    122122
    123 node_iterator add_node()
    124 edge_iterator add_edge(const node_iterator&, const node_iterator&)
     123node_iterator add_node();
     124edge_iterator add_edge(const node_iterator&, const node_iterator&);
    125125
    126126Hogy konnyebb legyen a progikat tesztelni, nehany stream utasitas:
    127127ezek nem a list_graph metodusai
    128128
    129 friend std::ostream& operator<<(std::ostream&, const node_iterator&)
    130 friend std::ostream& operator<<(std::ostream&, const edge_iterator&)
     129friend std::ostream& operator<<(std::ostream&, const node_iterator&);
     130friend std::ostream& operator<<(std::ostream&, const edge_iterator&);
    131131
    132132node_iterator metodusai:
    133 node_iterator()
    134 bool is_valid()
     133node_iterator();
     134bool is_valid();
     135void make_invalid();
    135136ezek nem tagfuggvenyek:
    136 friend bool operator==(const node_iterator&, const node_iterator&)
    137 friend bool operator!=(const node_iterator& u, const node_iterator& v)
     137friend bool operator==(const node_iterator&, const node_iterator&);
     138friend bool operator!=(const node_iterator& u, const node_iterator& v);
    138139   
    139140each_node_iterator metodusai:
    140141ez publikusan szarmazik a node_iterator-bol, tehat a fentiek is.
    141 each_node_iterator()
    142 each_node_iterator& operator++()
     142each_node_iterator();
     143each_node_iterator& operator++();
    143144
    144145edge_iterator metodusai:
    145 edge_iterator()
    146 bool is_valid()
     146edge_iterator();
     147bool is_valid();
     148void make_invalid();
    147149ezek nem tagfvek:
    148 friend bool operator==(const edge_iterator&, const edge_iterator&)
    149 friend bool operator!=(const edge_iterator&, const edge_iterator&)
     150friend bool operator==(const edge_iterator&, const edge_iterator&);
     151friend bool operator!=(const edge_iterator&, const edge_iterator&);
    150152ujra tagfv-ek.
    151 //node_iterator tail_node() const               nem javasolt
    152 //node_iterator head_node() const               nem javasolt
     153//node_iterator tail_node() const;              nem javasolt
     154//node_iterator head_node() const;              nem javasolt
    153155   
    154156each_edge_iterator metodusai:
    155157edge_iterator-bol szarmazik
    156 each_edge_iterator()
    157 each_edge_iterator& operator++()
     158each_edge_iterator();
     159each_edge_iterator& operator++();
    158160 
    159161out_edge_iterator metodusai:
    160162edge_iterator-bol szarmazik
    161 out_edge_iterator()
    162 //out_edge_iterator(const node_iterator&)       nem javasolt
    163 out_edge_iterator& operator++()
    164 //node_iterator a_node() const          nem javasolt
    165 //node_iterator b_node() const
     163out_edge_iterator();
     164//out_edge_iterator(const node_iterator&);      nem javasolt
     165out_edge_iterator& operator++();
     166//node_iterator a_node() const;         nem javasolt
     167//node_iterator b_node() const;
    166168   
    167169 
    168170in_edge_iterator metodusai:
    169171edge_iterator-bol szarmazik
    170 in_edge_iterator()
    171 //in_edge_iterator(const node_iterator&)        nem javasolt
    172 in_edge_iterator& operator++()
    173 //node_iterator a_node() const          nem javasolt
    174 //node_iterator b_node() const
     172in_edge_iterator();
     173//in_edge_iterator(const node_iterator&);       nem javasolt
     174in_edge_iterator& operator++();
     175//node_iterator a_node() const;         nem javasolt
     176//node_iterator b_node() const;
    175177
    176178
    177179sym_edge_iterator metodusai:
    178180edge_iterator-bol szarmazik
    179 sym_edge_iterator()
    180 //sym_edge_iterator(const node_iterator&)       nem javasolt
    181 sym_edge_iterator& operator++()
    182 //node_iterator a_node() const          nem javasolt
    183 //node_iterator b_node() const
     181sym_edge_iterator();
     182//sym_edge_iterator(const node_iterator&);      nem javasolt
     183sym_edge_iterator& operator++();
     184//node_iterator a_node() const;         nem javasolt
     185//node_iterator b_node() const;
    184186               
    185187Node propery array-okrol:
    186188
    187189template <typename graph_type, typename T>
    188 class node_property_vector
     190class node_property_vector;
    189191
    190192metodusok:
    191193
    192 node_property_vector(graph_type&)
    193 node_property_vector(graph_type&, T a)
    194 fill constructor, a-val kitolt
    195 void put(graph_traits<graph_type>::node_iterator, const T&)
    196 T get(graph_traits<graph_type>::node_iterator)
     194node_property_vector(graph_type&);
     195void put(graph_traits<graph_type>::node_iterator, const T&);
     196T get(graph_traits<graph_type>::node_iterator);
    197197
    198198Ugyanez edge_property_array-okkal
    199199
    200200template <typename graph_type, typename T>
    201 class edge_property_vector
    202 
    203 edge_property_vector(graph_type&)
    204 edge_property_vector(graph_type&, T a)
    205 fill constructor, a-val kitolt
    206 void put(graph_traits<graph_type>::edge_iterator, const T&)
    207 get(graph_traits<graph_type>::edge_iterator)
     201class edge_property_vector;
     202
     203edge_property_vector(graph_type&);
     204void put(graph_traits<graph_type>::edge_iterator, const T&);
     205get(graph_traits<graph_type>::edge_iterator);
    208206
    209207 Ennyi nem javasolas utan, meg nehany szo.
     
    218216
    219217marci@cs.elte.hu
    220 
    221 
    222 
Note: See TracChangeset for help on using the changeset viewer.