Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.98 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement