Найти среднее арифметическое информационного поля односвязного линейного списка - C#

Узнай цену своей работы

Формулировка задачи:

Дан односвязный линейный список, информационное поле которого целое число, найти среднее арифметическое этого списка. Сказли можно в консольном приложении сделать. Выручайте, пожалуйста

Решение задачи: «Найти среднее арифметическое информационного поля односвязного линейного списка»

textual
Листинг программы
  1.    class Program
  2.    {
  3.       static void Main(string[] args) {
  4.          Console.WriteLine($"Среднее арифметическое списка: {OneWayLinkedListElement<int>.MakeList(100, 100500, 300, 5).Average()}");
  5.          Console.ReadKey();
  6.       }
  7.    }
  8.  
  9.    public class OneWayLinkedListElement<T> : IEnumerable<T>
  10.    {
  11.       // Следующий элемент
  12.       public OneWayLinkedListElement<T> NextElement { get; set; }
  13.  
  14.       // Информационное поле (ну и название блин)
  15.       public T Data { get; set; }
  16.  
  17.       #region IEnumerable<T>, IEnumerable
  18.  
  19.       public IEnumerator<T> GetEnumerator() {
  20.          yield return Data;
  21.  
  22.          var currentElement = NextElement;
  23.          while (currentElement != null)
  24.          {
  25.             yield return currentElement.Data;
  26.             currentElement = currentElement.NextElement;
  27.          }
  28.       }
  29.  
  30.       IEnumerator IEnumerable.GetEnumerator()
  31.          => GetEnumerator();
  32.  
  33.       #endregion
  34.  
  35.       // Создать односвязанный список и вернуть его корень
  36.       public static OneWayLinkedListElement<T> MakeList(params T[] dataCollection)
  37.          => MakeList(dataCollection as IEnumerable<T>);
  38.  
  39.       // Создать односвязанный список и вернуть его корень
  40.       public static OneWayLinkedListElement<T> MakeList(IEnumerable<T> dataCollection) {
  41.          if (dataCollection == null)
  42.             return null;
  43.  
  44.          OneWayLinkedListElement<T> root = null;
  45.          OneWayLinkedListElement<T> previous = null;
  46.          foreach (var data in dataCollection) {
  47.             var currentElement = new OneWayLinkedListElement<T>() { Data = data };
  48.  
  49.             if (previous != null)
  50.                previous.NextElement = currentElement;
  51.             else
  52.                root = currentElement;
  53.  
  54.             previous = currentElement;
  55.          }
  56.  
  57.          return root;
  58.       }
  59.    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы