Advertisement
r1411

Рекурсивные списки

Jun 12th, 2021 (edited)
757
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct list {
  5.     int info;
  6.     list* next;
  7. };
  8.  
  9. // Схема 1
  10. void printList(list *p) {
  11.     if (p != NULL) {
  12.         cout << p->info << " ";
  13.         printList(p->next);
  14.     }
  15. }
  16.  
  17. // Схема 2 [Сумма положительных элементов списка]
  18. int positiveSum(list* p) {
  19.     if (p != NULL) {
  20.         if (p->info > 0)
  21.             return p->info + positiveSum(p->next);
  22.         else
  23.             return positiveSum(p->next);
  24.     }
  25.     return 0;
  26. }
  27.  
  28. void main() {
  29.     list* beg = new(list);
  30.     int x;
  31.     cin >> x;
  32.     beg->info = x; beg->next = NULL;
  33.     list* p = beg;
  34.     cin >> x;
  35.     while (x != 0) {
  36.         list* r = new(list);
  37.         r->info = x; r->next = NULL;
  38.         p->next = r;
  39.         p = r;
  40.         cin >> x;
  41.     }
  42.  
  43.     printList(beg); cout << endl;
  44.     cout << "s: " << positiveSum(beg) << endl;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement