Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2014
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.73 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. typedef int elementtype,position;
  6. const int maxlength=10;
  7. struct List
  8. {
  9.     elementtype elements[maxlength];
  10.     int last;           //indeks ostatniego elementu listy
  11. };
  12.  
  13. position END(List l)
  14. {
  15.     return l.last+1;
  16. }
  17.  
  18. position First(List l)
  19. {
  20.     return 0;
  21. }
  22.  
  23. position Next(position p,List l)
  24. {
  25.     if ((p>l.last) || (p<0)) return -1;
  26.     else return p+1;   
  27. }
  28.  
  29. position Previous(position p,List l)
  30. {
  31.     if ((p>l.last+1) || (p<0)) return -1;
  32.     else return p-1;
  33. }
  34.  
  35. position Locate(elementtype x, List l)
  36. { //zwraca pozycje x w l, gdy nie ma x w l zwraca end(l)
  37.     int i=0;
  38.     while ((i<=l.last) && (l.elements[i]!=x)) i++;
  39.     return i;
  40.  
  41. }
  42.  
  43. elementtype Retrieve(position p, List l)
  44. {
  45.     if ((p>l.last) || (p<0)) return -1;
  46.    
  47.     else return l.elements[p];
  48. }
  49.  
  50. bool Insert(int x, position p, List &l)
  51. {
  52.     if (l.last>=maxlength) return false;
  53.     //brak miejsca w tablicy
  54.     else if ((p>l.last+1) || (p<0)) return false;
  55.     //pozycja nie istnieje
  56.     else{
  57.         for (int i=l.last; i>=p;i--){
  58.             //przesuń elementy z pozycji p, p+1,... w dół tablicy
  59.             l.elements[i+1]=l.elements[i];
  60.             l.elements[p]=x;
  61.             l.last=l.last+1;       
  62.     }
  63.     return true;
  64. }
  65. }
  66.  
  67. bool Delete(position p, List &l)
  68. {
  69.     if ((p>l.last) || (p<0)) return false;//'pozycja nie istnieje'
  70.     else
  71.     {
  72.         for (int i=p;i< l.last;i++){
  73.         l.elements[i]=l.elements[i+1];
  74.         l.last--;
  75.     }
  76.     return true;
  77. }
  78. }
  79.  
  80.     void print(List l)
  81. {
  82.     position i=First(l);
  83.     while (i!=END(l))
  84.     {
  85.         cout << Retrieve(i,l) << endl;
  86.         i=Next(i,l);
  87.     }
  88.     cout << endl;
  89. }
  90.  
  91. int main(){
  92.    
  93. List l;
  94. l.last=-1;
  95.  
  96.  
  97. for (int i=0; i<3;i++){
  98. Insert(i,First(l),l);
  99. }
  100. print(l);
  101. Insert (20,Previous(END(l),l) ,l);
  102. print(l);
  103. Delete( Locate(20,l),l);
  104. print(l);
  105.  
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement