Найти среднее арифметическое информационного поля односвязного линейного списка - 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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д