SHARE
TWEET

Untitled

a guest Oct 21st, 2019 56 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. //struct element {
  5. //int wartosc wart;
  6. //element * nastepny ;
  7. //}
  8.  
  9. class Lista {
  10. public :
  11.     typedef int wartosc ;
  12. private :
  13.     struct element {
  14.     wartosc wart ;
  15.     element *nastepny ;
  16. };
  17. public :
  18.     typedef element *pozycja ;
  19. private :
  20.     pozycja pierwszy ;
  21. public :
  22.     Lista ();
  23.     ~Lista ();
  24.     bool empty ();
  25.     wartosc front ();
  26.     wartosc back ();
  27.     void push_front ( wartosc );
  28.     void push_back ( wartosc );
  29.     void pop_front ();
  30.     void pop_back ();
  31.     void insert ( pozycja , wartosc );
  32.     void erase ( pozycja );
  33.     pozycja first ();
  34.     pozycja last ();
  35.     pozycja next ( pozycja );
  36.     wartosc & at ( pozycja );
  37. };
  38.  
  39.  
  40.  
  41.  
  42. int main()
  43. {
  44. //   Lista moja_lista;   //<- proby Marcioszki xDDD
  45. //   moja_lista.push_front()
  46.     return 0;
  47. }
  48.  
  49. Lista :: Lista (){
  50. pierwszy = NULL ;
  51. }
  52.  
  53. Lista::~Lista(){
  54.     pozycja pom ;
  55.     while ( pierwszy != NULL ){
  56.     pom = pierwszy ;
  57.     pierwszy = pierwszy -> nastepny ;
  58.     delete pom;
  59.     }
  60. }
  61.  
  62. bool Lista :: empty (){
  63. if ( pierwszy == NULL )
  64. return true ;
  65. else
  66. return false ;
  67. }
  68.  
  69. Lista :: wartosc Lista :: front (){
  70.     return pierwszy -> wart ;
  71. }
  72.  
  73. Lista :: wartosc Lista :: back (){
  74.     pozycja it = pierwszy ;
  75.     while ( it -> nastepny != NULL )
  76.         it = it -> nastepny ;
  77.     return it -> wart ;
  78. }
  79.  
  80. void Lista :: push_front ( Lista :: wartosc w ){   //dodawanie elementu na poczatku listy
  81.     pozycja pom =new element ;
  82.     pom -> wart = w ;
  83.     pom -> nastepny = pierwszy ;
  84.     pierwszy = pom ;
  85. }
  86.  
  87. void Lista :: push_back ( Lista :: wartosc w ){
  88. if ( pierwszy == NULL )
  89. push_front ( w );
  90. else {
  91. pozycja it = pierwszy ;
  92. while ( it -> nastepny != NULL )
  93. it = it -> nastepny ;
  94. it -> nastepny =new element ;
  95. it -> nastepny -> wart = w ;
  96. it -> nastepny -> nastepny = NULL ;
  97. }
  98. }
  99.  
  100. void Lista :: pop_front (){
  101.     pozycja pom = pierwszy ;
  102.     pierwszy = pierwszy -> nastepny ;
  103.     delete pom ;
  104. }
  105.  
  106. void Lista :: pop_back (){
  107. if ( pierwszy -> nastepny == NULL ){
  108. delete pierwszy ;
  109. pierwszy = NULL ;
  110. }
  111. else {
  112. pozycja it = pierwszy ;
  113. while ( it -> nastepny -> nastepny != NULL )
  114. it = it -> nastepny ;
  115. delete it -> nastepny ;
  116. it -> nastepny = NULL ;
  117. }
  118. }
  119.  
  120. void Lista :: insert ( pozycja p , wartosc w ){
  121. if ( p != NULL ){
  122. pozycja pom =p -> nastepny ;
  123. p -> nastepny = new element ;
  124. p -> nastepny -> nastepny = pom ;
  125. p -> nastepny -> wart = w ;
  126. }
  127. else
  128. push_front ( w );
  129. }
  130.  
  131. void Lista :: erase ( pozycja p ){
  132. if ( p != NULL ){
  133. pozycja pom =p -> nastepny ;
  134. p -> nastepny = pom -> nastepny ;
  135. delete pom ;
  136. }
  137. else
  138. pop_front ();
  139. }
  140.  
  141. Lista :: pozycja Lista :: first (){
  142. return NULL ;
  143. }
  144.  
  145. Lista :: pozycja Lista :: last (){
  146. if ( pierwszy -> nastepny == NULL )
  147. return NULL ;
  148. else {
  149. pozycja it = pierwszy ;
  150. while ( it -> nastepny -> nastepny != NULL )
  151. it = it -> nastepny ;
  152. return it ;
  153. }
  154. }
  155.  
  156. Lista :: pozycja Lista :: next ( pozycja p ){
  157. if ( p == NULL )
  158. return pierwszy ;
  159. else
  160. return p -> nastepny ;
  161. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top