Advertisement
Guest User

Untitled

a guest
Apr 26th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.74 KB | None | 0 0
  1. template<typename TYP> class ListaTab
  2. {
  3.     TYP T[1];
  4.     int Last; //indeks ostatniego elementu listy
  5.    
  6.     public:
  7.         ListaTab(){Last=-1;}
  8.         int End();
  9.         int First();
  10.         int Next(int P);
  11.         int Previous(int P);
  12.         int Locate(TYP X);
  13.         TYP Retrieve(int P);
  14.         bool Insert(TYP X, int P);
  15.         bool Delete(int P);
  16.         void print();
  17. };
  18.  
  19. template<typename TYP> int ListaTab<TYP>::End()
  20. {
  21.     return Last+1;
  22. }
  23. template<typename TYP> int ListaTab<TYP>::First()
  24. {
  25.     return 0;
  26. }
  27. template<typename TYP> int ListaTab<TYP>::Next(int P)
  28. {
  29.     if (P<End())
  30.     {
  31.         return P+1;
  32.     }
  33.     else cout << "Podany indeks jest poza zakresem listy." << endl;
  34.     return NULL;
  35. }
  36. template<typename TYP> int ListaTab<TYP>::Previous(int P)
  37. {
  38.     if((P <= First()) || (P > End())) {cout << "Podany indeks jest poza zakresem listy," << endl; return NULL;}
  39.     else return P - 1;
  40. }
  41. template<typename TYP> int ListaTab<TYP>::Locate(TYP X)
  42. {
  43.     for(int i = 0; i<End(); i++)
  44.         if(T[i] == X) return i;
  45.     return End();
  46. }
  47. template<typename TYP> TYP ListaTab<TYP>::Retrieve(int P)
  48. {
  49.     if(P >= First() && P <= End())
  50.         {
  51.             return T[P];
  52.     }
  53.     else return T[0];  
  54. }
  55. template<typename TYP> bool ListaTab<TYP>::Insert(TYP X, int P)
  56. {
  57.     if((P < First()) || (P > End()))
  58.         return false;
  59.     if(P == End()) {
  60.         T[P] = X;
  61.         Last = Last + 1;
  62.         return true;
  63.     }
  64.     if (P<End()) {
  65.         for (int k = End(); k>P; k--) {
  66.             T[k] = T[k-1];
  67.     }
  68.     T[P] = X;
  69.     Last = Last + 1;
  70.     return ture;
  71.     }
  72.     return false
  73. }
  74. template<typename TYP> bool ListaTab<TYP>::Delete(int P)
  75. {
  76.     while ( P<End() - 1)
  77.     {
  78.         T[P] = T[P + 1];
  79.         P++;
  80.     }
  81.     Last--;
  82.     return false;
  83. }
  84. template<typename TYP> void ListaTab<TYP>::print()
  85. {
  86.     int i = First();
  87.     while ( i != End())
  88.     {
  89.         cout << Retrieve(i) << " ";
  90.         i = Next(i);
  91.     }
  92.     cout << endl;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement