Вопрос из предыдущего поста появился на занятиях после проведения десятиминутной самостоятельной работы.
Когда фантазия по вариантам на "летучку" иссякла, я сделала заготовку для вершины двусвязного списка.
И задание: В файле HandOuts_56.4.1.cs Класс Node представляет вершину двусвязного списка, поля класса – следующая и предыдущая вершина (Справка: у первой вершины списка ссылка на предыдущую вершину равна null, у последней ссылка на следующую равна null). Вершины связаны между собой отношением агрегации. Дополните описание класса: 1. кодом свойств Next и Prev, возвращающих ссылки на предыдущую и следующую вершину 2. методом addAfter() с параметром – Node – вершиной добавляемой после текущей. Остальной код консольного приложения оставьте без изменений.
using System; public class Node { double weigth; // вес вершины Node next; // следующая вершина Node prev; // предыдущая вершина // свойства public double Weigth { get { return weigth; } } // конструктор с параметром - вес вершины public Node(double weigth) { if (weigth >= 0) { this.weigth = weigth; next = null; prev = null; } else throw new ArgumentOutOfRangeException("Должен быть не меньше нуля!"); } // добавить вершину после текущей addAfter } class Program { static void Main(string[] args) { Node head = new Node(0); Node curr = head; int N = 33; // добавляем N вершин с случайными // весами из диапазона от [0;1) Random rnd = new Random(); for (int i = 0; i < N; i++) { curr.addAfter(new Node(rnd.NextDouble())); curr = curr.Next; } curr.addAfter(new Node(1)); curr = head; // вывод списка на экран do { Console.WriteLine("{0:f3}", curr.Weigth); curr = curr.Next; } while (curr != null); } }
И задание: В файле HandOuts_56.4.1.cs Класс Node представляет вершину двусвязного списка, поля класса – следующая и предыдущая вершина (Справка: у первой вершины списка ссылка на предыдущую вершину равна null, у последней ссылка на следующую равна null). Вершины связаны между собой отношением агрегации. Дополните описание класса: 1. кодом свойств Next и Prev, возвращающих ссылки на предыдущую и следующую вершину 2. методом addAfter() с параметром – Node – вершиной добавляемой после текущей. Остальной код консольного приложения оставьте без изменений.
Комментариев нет:
Отправить комментарий