Advertisement
kaunas163

Vienakrypčio sąrašo pavyzdys

Apr 18th, 2014
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | None | 0 0
  1. #include <string>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. class Miestas
  6. {
  7. private:
  8.     string pav, valst;
  9.     double gyv, plot;
  10. public:
  11.     Miestas(): pav(""), valst(""), gyv(0.0), plot(0.0) { }
  12.  
  13.     void Deti(string p, string v, double g, double pl) {
  14.         pav = p; valst = v; gyv = g; plot = pl; }
  15.  
  16.     string ImtiPav() {return pav;}
  17.     string ImtiValst() {return valst;}
  18.     double ImtiGyv() {return gyv;}
  19.     double ImtiPlot() {return plot;}
  20.  
  21.     bool operator > (Miestas kitas) { return this->plot > kitas.plot; }
  22. };
  23.  
  24. class Bendras
  25. {
  26. private:
  27.     struct Mazgas
  28.     {
  29.         Miestas duom;
  30.         Mazgas *kitas;
  31.     };
  32.  
  33.     Mazgas *pr, *d;
  34.  
  35.     void Naikinti();
  36.  
  37. public:
  38.  
  39.     Bendras() { pr = NULL; d = NULL; }
  40.     ~Bendras() { Naikinti(); }
  41.  
  42.     void Deti(Miestas m);
  43.     void Pradzia() { d = pr; }
  44.     bool Baigti() { return d == NULL; }
  45.     void Kitas() { if(d) d = d->kitas; }
  46.     Miestas Imti() { return d->duom; }
  47.     void Rikiavimas();
  48. };
  49.  
  50. void Bendras::Naikinti() {
  51.     while (pr)
  52.     {
  53.         d = pr;
  54.         pr = pr->kitas;
  55.         delete d;
  56.     }
  57. }
  58.  
  59. void Bendras::Deti(Miestas m) {
  60.     Mazgas *t = new Mazgas;
  61.     t->duom = m;
  62.     t->kitas = pr;
  63.     pr = t;
  64. }
  65.  
  66. void Bendras::Rikiavimas() {
  67.     bool apkeista = true;
  68.     while (apkeista)
  69.     {
  70.         apkeista = false;
  71.         Mazgas *r, *r1;
  72.         r = r1 = pr;
  73.         while (r1)
  74.         {
  75.             if (r1->duom > r->duom)
  76.             {
  77.                 Miestas laik = r->duom;
  78.                 r->duom = r1->duom;
  79.                 r1->duom = laik;
  80.                 apkeista = true;
  81.             }
  82.             r = r1;
  83.             r1 = r1->kitas;
  84.         }
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement