예제 #1
0
        public object Clone()
        {
            int         i     = 1;
            ListOne <T> clone = new ListOne <T>();

            foreach (T value in this)
            {
                clone.Add(i, new Point <T>(value));
                i++;
            }
            return(clone);
        }
예제 #2
0
        static void CreateCollection(int size)
        {
            int    i    = 0;
            Random rand = new Random();

            double[] arr1 = new double[size];
            for (int m = 0; m < arr1.Length; m++)
            {
                arr1[m] = (rand.NextDouble() - 0.5) * 100;
            }
            l1 = new ListOne <double>(arr1);

            l2.MakeList(size);

            string[] arr3 = new string[] { "am", "tt", "yy", "ii", "oo", "aa", "ap", "ac", "ad", "ae", "af", "ag", "ar", "gi", "az" };
            tr = new Tree <string>(i, arr3);

            Engine[] arr4 = new Engine[size];
            for (int m = 0; m < arr4.Length; m++)
            {
                arr4[m] = eng.MakeRandom();
            }
            stack = new MyStack <Engine>(arr4);
        }
예제 #3
0
 public MyStack(MyStack <T> c)
 {
     StackList = c.StackList;
 }
예제 #4
0
 public MyStack(T[] arr)
 {
     StackList = new ListOne <T>(arr);
 }
예제 #5
0
 public MyStack(int capacity)
 {
     StackList = new ListOne <T>(capacity);
 }
예제 #6
0
 public MyStack()
 {
     StackList = new ListOne <T>();
 }
예제 #7
0
        static void Main(string[] args)
        {
            Random rand = new Random();
            int    menu = 10;


            while (menu != 0)
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("1. Однонаправленный список ");
                Console.WriteLine("2. Двунаправленный список");
                Console.WriteLine("3. Дерево");
                Console.WriteLine("4. Стек на базе однонаправленного списка");
                Console.WriteLine("0.Выход");
                Console.ResetColor();
                menu = InputMenu(4);

                CreateCollection(10);
                Console.WriteLine("Коллекции созданы");

                if (menu == 0)
                {
                    break;
                }
                else
                {
                    int menuNext = 10;

                    switch (menu)
                    {
                        #region task1
                    case 1:

                        while (menuNext != 0)
                        {
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.WriteLine("1.Показать коллекцию");
                            Console.WriteLine("2.Добавить элементы");
                            Console.WriteLine("3.Удалить элементы");
                            Console.WriteLine("4.Поиск");
                            Console.WriteLine("5.Копия");
                            Console.WriteLine("6.Поверхностная копия");
                            Console.WriteLine("7.Удалить коллекцию");
                            Console.WriteLine("8.Длина");
                            Console.WriteLine("9.Добавить 0 после отрицательных чисел");
                            Console.WriteLine("0.Назад");
                            Console.ResetColor();
                            menuNext = InputMenu(9);
                            if (menuNext == 0)
                            {
                                break;
                            }
                            else
                            {
                                switch (menuNext)
                                {
                                case 1:
                                    l1.ShowList();
                                    break;

                                case 2:
                                    AddList();
                                    Console.WriteLine("Элементы добавлены");
                                    break;

                                case 3:
                                    DeleteList();
                                    Console.WriteLine("Элементы удалены");
                                    break;

                                case 4:
                                    SearchList();
                                    break;

                                case 5:
                                    ListOne <double> ll1 = (ListOne <double>)l1.Clone();
                                    ll1.ShowList();
                                    break;

                                case 6:
                                    ListOne <double> ll2 = (ListOne <double>)l1.ShallowCopy();
                                    ll2.ShowList();
                                    break;

                                case 7:
                                    l1.Delete();
                                    l1.ShowList();
                                    break;

                                case 8:
                                    Console.WriteLine($"Количество:{l1.Length }");
                                    break;

                                case 9:
                                    TaskList();
                                    break;
                                }
                            }
                        }
                        break;
                        #endregion task1

                        #region task2
                    case 2:


                        while (menuNext != 0)
                        {
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.WriteLine("1.Показать коллекции");
                            Console.WriteLine("2.Добавить элемент");
                            Console.WriteLine("3.Удалить элемент");
                            Console.WriteLine("4.Длина");
                            Console.WriteLine("5.Удалить четные цифры");
                            Console.WriteLine("0.Назад");
                            Console.ResetColor();

                            menuNext = InputMenu(5);

                            if (menuNext == 0)
                            {
                                break;
                            }
                            else
                            {
                                switch (menuNext)
                                {
                                case 1:
                                    Console.WriteLine("коллекция:");
                                    l2.ShowList();
                                    break;

                                case 2:
                                    AddListTwo();
                                    Console.WriteLine("Элементы добавлены");
                                    break;

                                case 3:
                                    DeleteListTwo();
                                    Console.WriteLine("Элементы удалены");
                                    break;

                                case 4:
                                    Console.WriteLine($"Количество:{l2.Length() }");
                                    break;

                                case 5:
                                    l2.DeleteEven();
                                    l2.ShowList();
                                    break;
                                }
                            }
                        }
                        break;
                        #endregion task2

                        #region task3
                    case 3:
                        while (menuNext != 0)
                        {
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.WriteLine("1.Показать коллекцию");
                            Console.WriteLine("2.Добавить элемент");
                            Console.WriteLine("3.Выполнить клонирование");
                            Console.WriteLine("4.Дерево поиска");
                            Console.WriteLine("5.Сколько элементов начинаются с заданного символа");
                            Console.WriteLine("6.Длина");
                            Console.WriteLine("7.Найти элемент");
                            Console.WriteLine("0.Назад");

                            Console.ResetColor();
                            menuNext = InputMenu(7);
                            if (menuNext == 0)
                            {
                                break;
                            }
                            else
                            {
                                switch (menuNext)
                                {
                                case 1:
                                    tr.Show();
                                    break;

                                case 2:
                                    AddTree();
                                    Console.WriteLine("Элемент добавлен");
                                    break;

                                case 3:
                                    Tree <string> tr2 = (Tree <string>)tr.ShallowCopy();
                                    tr2.Show();
                                    break;

                                case 4:
                                    tr.BuildSearch();
                                    tr.Show();
                                    break;

                                case 5:
                                    TaskTree();
                                    break;

                                case 6:
                                    Console.WriteLine($"Количество:{tr.Length()}");
                                    Console.WriteLine($"Глубиина:{tr.TreeDeep(tr.Root)}");
                                    break;

                                case 7:
                                    TreeSearch();
                                    break;
                                }
                            }
                        }
                        break;
                        #endregion task3


                        #region task4
                    case 4:

                        while (menuNext != 0)
                        {
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.WriteLine("1.Показать коллекцию");
                            Console.WriteLine("2.Добавить элементы");
                            Console.WriteLine("3.Удалить элементы");
                            Console.WriteLine("4.Поиск");
                            Console.WriteLine("5.Копия");
                            Console.WriteLine("6.Поверхностная копия");
                            Console.WriteLine("7.Удалить коллекцию");
                            Console.WriteLine("8.Длина");
                            Console.WriteLine("0.Назад");
                            Console.ResetColor();
                            menuNext = InputMenu(8);
                            if (menuNext == 0)
                            {
                                break;
                            }
                            else
                            {
                                switch (menuNext)
                                {
                                case 1:
                                    stack.Show();
                                    break;

                                case 2:
                                    AddStack();
                                    Console.WriteLine("Элементы добавлены");
                                    break;

                                case 3:
                                    DeleteStack();
                                    Console.WriteLine("Элементы удалены");
                                    break;

                                case 4:

                                    stack.Search(CreateEng());
                                    break;

                                case 5:
                                    MyStack <Engine> s2 = (MyStack <Engine>)stack.Clone();
                                    s2.Show();
                                    break;

                                case 6:
                                    MyStack <Engine> s3 = stack.ShallowCopy();
                                    s3.Show();
                                    break;

                                case 7:
                                    stack.Delete();
                                    stack.Show();
                                    break;

                                case 8:
                                    Console.WriteLine($"Количество:{stack.Count() }");
                                    break;
                                }
                            }
                        }
                        break;
                        #endregion task4
                    }
                }
            }



            //Random rand = new Random();
            //ListTwo<int> l = new ListTwo<int>();
            //l.MakeList(6);
            //Console.WriteLine();
            //l.ShowList();
            //l.Delete(3, 2);
            //Console.WriteLine();
            //l.ShowList();
            //l.Add(1, 4);
            //Console.WriteLine();
            //l.ShowList();
            //Console.WriteLine();
            //l.DeleteEven();
            //Console.WriteLine();
            //l.ShowList();

            //double[] arr = new double[8];
            //for(int m=0; m<arr.Length;m++)
            //{
            //    arr[m] = (rand.NextDouble() - 0.5) * 100;
            //}
            //ListOne<double> l1 = new ListOne<double>(arr);
            //Console.WriteLine();
            //l1.ShowList();
            //Console.WriteLine();
            //Point<double> p = new Point<double>(-0.5);
            //l1.Add(7, p);
            //Console.WriteLine();
            //l1.ShowList();
            //Console.WriteLine();
            //l1.Delete(5, 1);
            //l1.ShowList();

            //int i = 0;
            //bool[] mas = new bool[l1.Length];
            //foreach(double elem in l1)
            //{
            //    if(elem<0)
            //    {
            //        mas[i] = true;
            //    }
            //        i++;
            //}
            //for(int j= mas.Length-1; j>=0;j--)
            //{
            //    if (mas[j])
            //    {
            //        Point<double> zero = new Point<double>(0);
            //        l1.Add(j+2 , zero);

            //    }
            //}
            //Console.WriteLine();
            //l1.ShowList();
            //Console.WriteLine();

            //ListOne<double> ll1 = (ListOne<double>)l1.Clone();
            //ll1.ShowList();
            //Console.WriteLine();
            //ll1.Delete().ShowList();
            //Console.WriteLine();

            //string[] mas = new string[] { "am", "tt", "yy", "ii", "oo", "aa", "ap", "ac", "ad", "ae", "af", "ag", "ar", "gi", "az" };
            //int i;
            //Tree<string> tr = new Tree<string>(mas);
            //PointTree<string> p = new PointTree<string>("kk");

            //tr.Show();
            //Console.WriteLine("___________");

            //tr = new Tree<string>(0, mas);

            //tr.Show();
            //Console.WriteLine("___________");


            //tr.BuildSearch();
            //tr.Show();

            //i = 0;
            //string first = "a";
            //foreach (string str in tr)
            //{
            //    if (str.Substring(0, 1) == first) i++;
            //}
            //Console.WriteLine(i);
        }
예제 #8
0
 public ListOne(ListOne <T> list)
 {
     Beg = list.Beg;
 }