Beispiel #1
0
        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();
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
 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();
 }
Beispiel #4
0
        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();
        }