static void Main(string[] args) { DoublyLinkedList linkedList = new DoublyLinkedList(Count()); uint globalcount = Count(); Console.WriteLine("Список отрезков из файла:"); FileReader(linkedList); Console.WriteLine("\nВведите новый элемент списка"); string elem = Console.ReadLine(); Console.WriteLine("\nВведите индекс позиции списка, куда хотите вставить элемент"); uint index2 = UInt32.Parse(Console.ReadLine()); linkedList.InsertIndex(elem, index2); Console.WriteLine("\nНовый список отрезков из файла:"); linkedList.Show(); Console.WriteLine("\nСписок отрезоков, которые наклонены к оси абсцисс под углами 30 и 45 градусов: "); linkedList.AngleList(); Console.WriteLine("\nВведите начало интервала: "); double start = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введите конец интервала: "); double end = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("\nСписок отрезков из заданого интервала: "); linkedList.LengthList(start, end); Console.WriteLine("\nСписок отрезков, отсортированный по возрастанию длин: "); linkedList.Sort(); Console.ReadKey(); }
public void LengthList(double o, double t) { DoublyLinkedList linkedList2 = new DoublyLinkedList(); if (First == null) { Console.WriteLine("Список пуст"); return; } Current = First; while (Current != null) { // Записываем узел в переменную string s = Current.Value.ToString(); // Разбиваем ее на массив строк string[] s_2 = s.Split(';'); double len = Math.Sqrt(Math.Pow((Convert.ToDouble(s_2[2]) - Convert.ToDouble(s_2[0])), 2) + Math.Pow((Convert.ToDouble(s_2[3]) - Convert.ToDouble(s_2[1])), 2)); if ((len > o) && (len < t)) { linkedList2.Push_Back(s); } Current = Current.Next; } linkedList2.Show(); }
public static void FileReader(DoublyLinkedList linkedList) { using (StreamReader fs = new StreamReader("C:\\Prog\\1.txt")) { while (true) { string temp = fs.ReadLine(); if (temp == null) { break; } linkedList.Push_Back(temp); } fs.Close(); } linkedList.Show(); }
public void AngleList() { DoublyLinkedList linkedList2 = new DoublyLinkedList(); if (First == null) { Console.WriteLine("Список пуст"); return; } Current = First; while (Current != null) { string s = Current.Value.ToString(); string[] s_2 = s.Split(';'); double len = Math.Atan((Convert.ToDouble(s_2[3]) - Convert.ToDouble(s_2[1])) / (Convert.ToDouble(s_2[2]) - Convert.ToDouble(s_2[0]))); if ((len == 30) || (len == 45)) { linkedList2.Push_Back(s); } Current = Current.Next; } linkedList2.Show(); }