Advertisement
xotohop

list

Apr 4th, 2020
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.32 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct node
  6. {
  7.     int number;
  8.     node* next;
  9. };
  10.  
  11. typedef node* NodeP; // указатель на тип node
  12. NodeP head = NULL;   // указатель на начало списка
  13. NodeP ptr;           // указатель на текущий элемент
  14. NodeP tail;
  15.  
  16. node* create(NodeP)
  17. {
  18.     int elem_quan;
  19.     int num;
  20.     cout << "enter number of elements: ";
  21.     cin >> elem_quan;
  22.     tail = head;     // указатель на конец списка
  23.     while (elem_quan)
  24.     {
  25.         cin >> num;
  26.         ptr = (node*)malloc(sizeof(node));
  27.         if (head == NULL)       // если список пуст
  28.         {
  29.             head = ptr;
  30.             head->number = num; // запись значения в список
  31.             head->next = NULL;
  32.             tail = head;
  33.             elem_quan--;
  34.         }
  35.         else
  36.         {
  37.             ptr->number = num;
  38.             tail->next = ptr;
  39.             ptr->next = NULL;
  40.             tail = ptr;
  41.             elem_quan--;
  42.         }
  43.     }
  44.     return tail;
  45. }
  46.  
  47. void print(NodeP)
  48. {
  49.     tail = head;
  50.     while (tail)
  51.     {
  52.         cout << tail->number << " ";
  53.         tail = tail->next;
  54.     }
  55.     cout << endl;
  56.     return;
  57. }
  58.  
  59. int count_even(NodeP)
  60. {
  61.     int count = 0;
  62.     tail = head;
  63.     while (tail)
  64.     {
  65.         if (tail->number % 2 == 0)
  66.             count++;
  67.         tail = tail->next;
  68.     }
  69.     return count;
  70. }
  71.  
  72.  
  73.  
  74. int main()
  75. {
  76.     create(ptr);
  77.     print(ptr);
  78.     cout << "number of evens: "  << count_even(ptr) << endl;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement