Changeset 4:8009bb5ddd09 in lemon0.x for src/work
 Timestamp:
 12/14/03 16:32:46 (20 years ago)
 Branch:
 default
 Phase:
 public
 Convert:
 svn:c9d7d8f590d60310b91f818b3a526b0e/lemon/trunk@16
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

src/work/bfsdemo.cc
r3 r4 25 25 bool isValid() const {return n<=5000;} 26 26 int Index() {return n;} //csak a kiirashoz kell 27 28 NodeIterator() {} 29 NodeIterator(IGraph &Gr) {G=&Gr;n=1;} //Bfs class prefer this. 27 30 }; 28 31 … … 41 44 NodeIterator Anode() const {return From();} 42 45 NodeIterator Bnode() const {return To();} 46 47 OutEdgeIterator() {} 48 OutEdgeIterator(IGraph &Gr,NodeIterator &n) //Bfs class prefer this. 49 {G=&Gr;f=n.n;t=0;operator++();} 43 50 }; 44 51 … … 71 78 }; 72 79 80 // New style bfs traits 81 class BFS_T 82 { 83 public: 84 85 typedef IGraph Graph_t; 86 typedef IGraph::OutEdgeIterator SearchEdgeIterator; 87 88 struct visited_map_t { 89 typedef bool value_type; 90 void Put(const IGraph::NodeIterator &n,const value_type &t) { n>isVis=t; } 91 value_type Get(const IGraph::NodeIterator &n) const { return n>isVis; } 92 }; 93 struct tree_map_t { 94 typedef IGraph::EdgeIterator value_type; 95 void Put(const IGraph::NodeIterator &n,const value_type &t) 96 { cout << t.From().Index() << ">" << t.To().Index() << '\n'; } 97 }; 98 typedef do_nothing_map dist_map_t; //node>int (W) 99 typedef do_nothing_map priority_map_t; //node>int (W) 100 }; 101 73 102 74 103 int main() 75 104 { 76 105 IGraph IG; 77 IMaps_t IMaps;78 106 107 // //Functionsyte calling 108 // IMaps_t IMaps; 109 110 // IGraph::NodeIterator in; 111 // IG.GetFirst(in); 112 // ++in; 113 // bfs_fn(IG,in,IMaps); 114 115 //Classstyle calling: 116 79 117 IGraph::NodeIterator in; 80 118 IG.GetFirst(in); 81 119 ++in; 82 bfs(IG,in,IMaps); 120 Bfs<BFS_T> bfs; 121 bfs.SetG(IG); 122 bfs.Init(in); 123 bfs.Run(); 83 124 }
Note: See TracChangeset
for help on using the changeset viewer.