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

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

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

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

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

textual
Листинг программы
   class Program
   {
      static void Main(string[] args) {
         Console.WriteLine($"Среднее арифметическое списка: {OneWayLinkedListElement<int>.MakeList(100, 100500, 300, 5).Average()}");
         Console.ReadKey();
      }
   }
 
   public class OneWayLinkedListElement<T> : IEnumerable<T>
   {
      // Следующий элемент
      public OneWayLinkedListElement<T> NextElement { get; set; }
 
      // Информационное поле (ну и название блин)
      public T Data { get; set; }
 
      #region IEnumerable<T>, IEnumerable
 
      public IEnumerator<T> GetEnumerator() {
         yield return Data;
 
         var currentElement = NextElement;
         while (currentElement != null)
         {
            yield return currentElement.Data;
            currentElement = currentElement.NextElement;
         }
      }
 
      IEnumerator IEnumerable.GetEnumerator()
         => GetEnumerator();
 
      #endregion
 
      // Создать односвязанный список и вернуть его корень
      public static OneWayLinkedListElement<T> MakeList(params T[] dataCollection)
         => MakeList(dataCollection as IEnumerable<T>);
 
      // Создать односвязанный список и вернуть его корень
      public static OneWayLinkedListElement<T> MakeList(IEnumerable<T> dataCollection) {
         if (dataCollection == null)
            return null;
 
         OneWayLinkedListElement<T> root = null;
         OneWayLinkedListElement<T> previous = null;
         foreach (var data in dataCollection) {
            var currentElement = new OneWayLinkedListElement<T>() { Data = data };
 
            if (previous != null)
               previous.NextElement = currentElement;
            else
               root = currentElement;
 
            previous = currentElement;
         }
 
         return root;
      }
   }

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


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

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

9   голосов , оценка 3.667 из 5
Похожие ответы