当前位置:   article > 正文

【C++】利用递归算法实现整型单链表求链表中最大值、结点个数、所有整数平均值_数据结构用递归方法求单链表中的最大结点值和最小结点值。

数据结构用递归方法求单链表中的最大结点值和最小结点值。

已知head为单链表的表头指针,链表中存储的都是整形数据,实现下列运算的递归算法:
            i.  求链表中的最大值
                int GetMax(Node* a)

            ii. 求链表中的结点个数
                int GetNodeNum(Node* a)

            iii.求所有整数的平均值
                double GetAvg(Node* a, int n)

  1. #include <iostream>
  2. using namespace std;
  3. const int MinNumber = -1000000;
  4. struct Node {
  5.     Node(int x)
  6.     {
  7.         value = x;
  8.         next = NULL;
  9.     }
  10.     int value;
  11.     Node* next;
  12. };
  13. /*
  14. TODO:求链表中的最大值,并返回。如果链表a为空,则直接返回MinNumber
  15. */
  16. int GetMax(Node* a)
  17. {
  18.     if(a==NULL) return MinNumber;
  19.     return a->value>GetMax(a->next)?a->value:GetMax(a->next);
  20. }
  21. /*
  22. TODO:求链表中的结点个数,并返回个数。
  23.  */
  24. int GetNodeNum(Node* a)
  25. {
  26.     if(a==NULL) return 0;
  27.     else{
  28.         return GetNodeNum(a->next)+1;
  29.     }
  30. }
  31. /*
  32. TODO: 求所有整数的平均值
  33. */
  34. double GetAvg(Node* a, int n)
  35. {
  36.     if(n==0) return 0;
  37.     if(n==1) return a->value;
  38.     return (a->value+(n-1)*GetAvg(a->next,n-1))/n;
  39. }
  40. int main()
  41. {
  42.     int count;
  43.     cin >> count;
  44.     Node *a = NULL, *p;
  45.     for (int i = 0; i < count; i++) {
  46.         int iValue;
  47.         cin >> iValue;
  48.         if (a == NULL) {
  49.             a = new Node(iValue);
  50.             p = a;
  51.         } else {
  52.             p->next = new Node(iValue);
  53.             p = p->next;
  54.         }
  55.     }//a表示表头
  56.     int max = GetMax(a);
  57.     int nodeNum = GetNodeNum(a);
  58.     double avg = GetAvg(a, nodeNum);
  59.     cout << "最大值:" << max << endl;
  60.     cout << "结点个数:" << nodeNum << endl;
  61.     cout << "平均值:" << avg << endl;
  62. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/852757
推荐阅读
相关标签
  

闽ICP备14008679号