Advertisement
Guest User

ListaMuchii2

a guest
May 22nd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.49 KB | None | 0 0
  1. class Muchie {
  2. private:
  3.     int startNod;
  4.     int endNod;
  5.     int cost;
  6. public:
  7.     Muchie(int start_nod, int end_nod, int pondere): startNod{start_nod}, endNod{end_nod}, cost{pondere}{};
  8.     int& getStart(){
  9.         return startNod;
  10.     }
  11.     int& getEnd(){
  12.         return endNod;
  13.     }
  14.     int& getCost(){
  15.         return cost;
  16.     }
  17.     void setStart(int nod){
  18.         startNod = nod;
  19.     }
  20.     void setEnd(int nod){
  21.         endNod = nod;
  22.     }
  23.     void setCost(int cost){
  24.         this->cost = cost;
  25.     }
  26. };
  27.  
  28. class ListaMuchii {
  29.     int nr_noduri, nr_muchii;
  30.     vector<Muchie> elems;
  31. public:
  32.     void add(Muchie& m){
  33.         elems.push_back(m);
  34.         nr_muchii++;
  35.     }
  36.     void setNrNoduri(int nr){
  37.         nr_noduri = nr;
  38.     }
  39.     int getNrNod(){
  40.         return nr_noduri;
  41.     }
  42.     int getNrMuchii(){
  43.         return nr_muchii;
  44.     }
  45.     Muchie getMuchie(int poz){
  46.         return elems[poz];
  47.     }
  48. };
  49.  
  50. ListaMuchii citireListaMuchii(ifstream &f, int& nr_noduri, int& nr_muchii){
  51.     // returneaza o ListaMuchii
  52.     f >> nr_noduri >> nr_muchii;
  53.     ListaMuchii list{};
  54.     list.setNrNoduri(nr_noduri);
  55.     int start, end, cost;
  56.     for (int i = 0; i < nr_muchii; i++){
  57.         f >> start >> end >> cost;
  58.         Muchie m{start, end, cost};
  59.         list.add(m);
  60.     }
  61.     return list;
  62. }
  63.  
  64. vector<vector<int>> listaMuchii2matriceCosturi(ListaMuchii& list){
  65.     //returneaza matricea de costuri calculata din lista de muchii data
  66.     vector<vector<int>> matr (list.getNrNod(), vector<int> (list.getNrNod()));
  67.     for (int i = 0; i < list.getNrMuchii(); i++){
  68.         Muchie m = list.getMuchie(i);
  69.         matr[m.getStart()][m.getEnd()] = m.getCost();
  70.     }
  71.     return matr;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement