[Lemon-commits] [lemon_svn] marci: r28 - hugo/trunk/src/work
Lemon SVN
svn at lemon.cs.elte.hu
Mon Nov 6 20:36:54 CET 2006
Author: marci
Date: Fri Jan 16 12:20:09 2004
New Revision: 28
Modified:
hugo/trunk/src/work/marci_graph_concept.txt
Log:
new method for making invalid iterators: make_invalid()
Modified: hugo/trunk/src/work/marci_graph_concept.txt
==============================================================================
--- hugo/trunk/src/work/marci_graph_concept.txt (original)
+++ hugo/trunk/src/work/marci_graph_concept.txt Fri Jan 16 12:20:09 2004
@@ -22,32 +22,32 @@
marci_property_vector.hh //property vector megvalosites indexelt grafokhoz
graf es iterator tipusok:
-class list_graph
+class list_graph;
-class node_iterator
+class node_iterator;
trivialis node iterator, csak cimezni lehet vele, pl property vectort
-class each_node_iterator
+class each_node_iterator;
node iterator a graf pontjainak bejarasara, node_iterator-a konvertalhato
-class edge_iterator
+class edge_iterator;
trivialis edge iterator, csak cimezni lehet vele, pl property vectort
-class each_edge_iterator
+class each_edge_iterator;
edge iterator a graf osszes elenek bejarasara
-class out_edge_iterator
+class out_edge_iterator;
edge iterator 1 pont ki eleinek bejarasara, edge_iterator-a konvertalhato
-class in_edge_iterator
+class in_edge_iterator;
edge iterator 1 pont be eleinek bejarasara, edge_iterator-a konvertalhato
-class sym_edge_iterator
+class sym_edge_iterator;
edge iterator 1 pont be es ki eleinek bejarasara, edge_iterator-a konvertalhato
default constructor:
-list_graph()
+list_graph();
A graf osztaly fobb publikus metodusai, az alapveto hasznalathoz:
Hasonlo funkciok megvalosithatok 1 kesobb leirt modon, illetve
@@ -58,30 +58,30 @@
out_edge_iterator(const node_iterator&) hasznalata nem javasolt,
esetleg majd szamuzzuk a concept-bol, s akkor nem nesz baj.
-each_node_iterator first_node()
-each_edge_iterator first_edge()
-out_edge_iterator first_out_edge(const node_iterator&)
-in_edge_iterator first_in_edge(const node_iterator&)
-sym_edge_iterator first_sym_edge(const node_iterator&)
-
-node_iterator tail(const edge_iterator&)
-node_iterator head(const edge_iterator&)
-
-node_iterator a_node(const out_edge_iterator&)
-node_iterator a_node(const in_edge_iterator&)
-node_iterator a_node(const sym_edge_iterator&)
+each_node_iterator first_node();
+each_edge_iterator first_edge();
+out_edge_iterator first_out_edge(const node_iterator&);
+in_edge_iterator first_in_edge(const node_iterator&);
+sym_edge_iterator first_sym_edge(const node_iterator&);
+
+node_iterator tail(const edge_iterator&);
+node_iterator head(const edge_iterator&);
+
+node_iterator a_node(const out_edge_iterator&);
+node_iterator a_node(const in_edge_iterator&);
+node_iterator a_node(const sym_edge_iterator&);
//az out, in or sym edge iterator rogzitett pontjara ad 1 node_iterator-t
-node_iterator b_node(const out_edge_iterator&)
-node_iterator b_node(const in_edge_iterator&)
-node_iterator b_node(const sym_edge_iterator&)
+node_iterator b_node(const out_edge_iterator&);
+node_iterator b_node(const in_edge_iterator&);
+node_iterator b_node(const sym_edge_iterator&);
//az out, in or sym edge iterator nem rogzitett pontjara ad 1 node_iterator-t
-node_iterator invalid_node()
-edge_iterator invalid_edge()
-out_edge_iterator invalid_out_edge()
-in_edge_iterator invalid_in_edge()
-sym_edge_iterator invalid_sym_edge()
+//node_iterator invalid_node();
+//edge_iterator invalid_edge();
+//out_edge_iterator invalid_out_edge();
+//in_edge_iterator invalid_in_edge();
+//sym_edge_iterator invalid_sym_edge();
//az iteratorok ures konstruktorai meghatarozatlan
tartalmu konstruktort adnak vissza, ezekkel a matodusokkal
@@ -90,121 +90,119 @@
Kiserleti cellal ugyanezen fv-ek mas stilusu megvalositasai:
-void get_first(each_node_iterator&)
-void get_first(each_edge_iterator&)
-void get_first(out_edge_iterator&, const node_iterator&)
-void get_first(in_edge_iterator&, const node_iterator&)
-void get_first(sym_edge_iterator&, const node_iterator&)
-
-void get_tail(node_iterator&, const edge_iterator&)
-void get_head(node_iterator&, const edge_iterator&)
-
-void get_a_node(node_iterator&, const out_edge_iterator&)
-void get_a_node(node_iterator&, const in_edge_iterator&)
-void get_a_node(node_iterator&, const sym_edge_iterator&)
+void get_first(each_node_iterator&);
+void get_first(each_edge_iterator&);
+void get_first(out_edge_iterator&, const node_iterator&);
+void get_first(in_edge_iterator&, const node_iterator&);
+void get_first(sym_edge_iterator&, const node_iterator&);
+
+void get_tail(node_iterator&, const edge_iterator&);
+void get_head(node_iterator&, const edge_iterator&);
+
+void get_a_node(node_iterator&, const out_edge_iterator&);
+void get_a_node(node_iterator&, const in_edge_iterator&);
+void get_a_node(node_iterator&, const sym_edge_iterator&);
-void get_b_node(node_iterator&, const out_edge_iterator&)
-void get_b_node(node_iterator&, const in_edge_iterator&)
-void get_b_node(node_iterator&, const sym_edge_iterator&)
+void get_b_node(node_iterator&, const out_edge_iterator&);
+void get_b_node(node_iterator&, const in_edge_iterator&);
+void get_b_node(node_iterator&, const sym_edge_iterator&);
-void get_invalid(node_iterator&)
-void get_invalid(edge_iterator&)
-void get_invalid(out_edge_iterator&)
-void get_invalid(in_edge_iterator&)
-void get_invalid(sym_edge_iterator&)
+//void get_invalid(node_iterator&);
+//void get_invalid(edge_iterator&);
+//void get_invalid(out_edge_iterator&);
+//void get_invalid(in_edge_iterator&);
+//void get_invalid(sym_edge_iterator&);
Pontok azonositasara de meginkabb property vectorokhoz:
-int id(const node_iterator&)
-int id(const edge_iterator&)
+int id(const node_iterator&);
+int id(const edge_iterator&);
Pontok es elek hozzaadasanak metodusai:
-node_iterator add_node()
-edge_iterator add_edge(const node_iterator&, const node_iterator&)
+node_iterator add_node();
+edge_iterator add_edge(const node_iterator&, const node_iterator&);
Hogy konnyebb legyen a progikat tesztelni, nehany stream utasitas:
ezek nem a list_graph metodusai
-friend std::ostream& operator<<(std::ostream&, const node_iterator&)
-friend std::ostream& operator<<(std::ostream&, const edge_iterator&)
+friend std::ostream& operator<<(std::ostream&, const node_iterator&);
+friend std::ostream& operator<<(std::ostream&, const edge_iterator&);
node_iterator metodusai:
-node_iterator()
-bool is_valid()
+node_iterator();
+bool is_valid();
+void make_invalid();
ezek nem tagfuggvenyek:
-friend bool operator==(const node_iterator&, const node_iterator&)
-friend bool operator!=(const node_iterator& u, const node_iterator& v)
+friend bool operator==(const node_iterator&, const node_iterator&);
+friend bool operator!=(const node_iterator& u, const node_iterator& v);
each_node_iterator metodusai:
ez publikusan szarmazik a node_iterator-bol, tehat a fentiek is.
-each_node_iterator()
-each_node_iterator& operator++()
+each_node_iterator();
+each_node_iterator& operator++();
edge_iterator metodusai:
-edge_iterator()
-bool is_valid()
+edge_iterator();
+bool is_valid();
+void make_invalid();
ezek nem tagfvek:
-friend bool operator==(const edge_iterator&, const edge_iterator&)
-friend bool operator!=(const edge_iterator&, const edge_iterator&)
+friend bool operator==(const edge_iterator&, const edge_iterator&);
+friend bool operator!=(const edge_iterator&, const edge_iterator&);
ujra tagfv-ek.
-//node_iterator tail_node() const nem javasolt
-//node_iterator head_node() const nem javasolt
+//node_iterator tail_node() const; nem javasolt
+//node_iterator head_node() const; nem javasolt
each_edge_iterator metodusai:
edge_iterator-bol szarmazik
-each_edge_iterator()
-each_edge_iterator& operator++()
+each_edge_iterator();
+each_edge_iterator& operator++();
out_edge_iterator metodusai:
edge_iterator-bol szarmazik
-out_edge_iterator()
-//out_edge_iterator(const node_iterator&) nem javasolt
-out_edge_iterator& operator++()
-//node_iterator a_node() const nem javasolt
-//node_iterator b_node() const
+out_edge_iterator();
+//out_edge_iterator(const node_iterator&); nem javasolt
+out_edge_iterator& operator++();
+//node_iterator a_node() const; nem javasolt
+//node_iterator b_node() const;
in_edge_iterator metodusai:
edge_iterator-bol szarmazik
-in_edge_iterator()
-//in_edge_iterator(const node_iterator&) nem javasolt
-in_edge_iterator& operator++()
-//node_iterator a_node() const nem javasolt
-//node_iterator b_node() const
+in_edge_iterator();
+//in_edge_iterator(const node_iterator&); nem javasolt
+in_edge_iterator& operator++();
+//node_iterator a_node() const; nem javasolt
+//node_iterator b_node() const;
sym_edge_iterator metodusai:
edge_iterator-bol szarmazik
-sym_edge_iterator()
-//sym_edge_iterator(const node_iterator&) nem javasolt
-sym_edge_iterator& operator++()
-//node_iterator a_node() const nem javasolt
-//node_iterator b_node() const
+sym_edge_iterator();
+//sym_edge_iterator(const node_iterator&); nem javasolt
+sym_edge_iterator& operator++();
+//node_iterator a_node() const; nem javasolt
+//node_iterator b_node() const;
Node propery array-okrol:
template <typename graph_type, typename T>
-class node_property_vector
+class node_property_vector;
metodusok:
-node_property_vector(graph_type&)
-node_property_vector(graph_type&, T a)
-fill constructor, a-val kitolt
-void put(graph_traits<graph_type>::node_iterator, const T&)
-T get(graph_traits<graph_type>::node_iterator)
+node_property_vector(graph_type&);
+void put(graph_traits<graph_type>::node_iterator, const T&);
+T get(graph_traits<graph_type>::node_iterator);
Ugyanez edge_property_array-okkal
template <typename graph_type, typename T>
-class edge_property_vector
+class edge_property_vector;
-edge_property_vector(graph_type&)
-edge_property_vector(graph_type&, T a)
-fill constructor, a-val kitolt
-void put(graph_traits<graph_type>::edge_iterator, const T&)
-get(graph_traits<graph_type>::edge_iterator)
+edge_property_vector(graph_type&);
+void put(graph_traits<graph_type>::edge_iterator, const T&);
+get(graph_traits<graph_type>::edge_iterator);
Ennyi nem javasolas utan, meg nehany szo.
Alparral ugy gondoltuk, hogy az iterator 1 olyan egyszeru objetum legyen
@@ -216,7 +214,4 @@
at a propertyket az algoritmusoknak, algoritmus-objektumoknak.
Errol majd kesobb.
-marci at cs.elte.hu
-
-
-
+marci at cs.elte.hu
\ No newline at end of file
More information about the Lemon-commits
mailing list