Advertisement
Guest User

Untitled

a guest
Oct 17th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. // Example program
  2. #include <iostream>
  3. #include <string>
  4.  
  5. struct node {
  6.     node* next;
  7.     int  data;
  8. };
  9.  
  10. class slist {
  11. private:
  12.     node*  head, *tail;
  13.    
  14. public:
  15.     slist(void):head(NULL), tail(NULL){}
  16.     ~slist(){ clear(); }
  17. public:
  18.  
  19.    
  20.     node* add(int data){
  21.         node* p = new node();
  22.         if(p != NULL){
  23.             p->data = data;
  24.             p->next = NULL;
  25.  
  26.             if(head == NULL)
  27.                 head = tail = p;
  28.             else
  29.                 tail = tail->next = p;
  30.            
  31.         }
  32.         return p;
  33.     }
  34.  
  35.    
  36.    
  37.     //удаление всех
  38.     void clear(void){
  39.         node* t;
  40.         while(head != NULL){
  41.             t    = head;
  42.             head = head->next;
  43.             delete t;
  44.         }
  45.         tail = NULL;
  46.     }
  47.  
  48.     node* begin(void) { return head; }
  49.     node* begin(void) const { return head; }
  50.  
  51.     bool  empty(void) const { return (head == NULL); }
  52. };
  53.  
  54. //печать
  55. void slist_print(std::ostream& _out, const slist& lst){
  56.     for(const node* p = lst.begin(); p != NULL; p = p->next)
  57.         _out << p->data <<" ";
  58.     _out << std::endl;
  59. }
  60.  
  61. void add_last(slist& lst){
  62.  int counter=0;
  63.  for(const node* p = lst.begin();p!=NULL;p = p->next)
  64.      if(p->data%2!=0)
  65.         counter++;
  66. lst.add(counter);
  67. }
  68.  
  69. int main(){
  70.     slist lst;
  71.     for(int i=0;i<15;i++){
  72.         lst.add(i);
  73.     }
  74.     slist_print(std::cout,lst);
  75.     add_last(lst);
  76.         slist_print(std::cout,lst);
  77.  
  78.     return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement