Пример #1
0
        public void SimpleTest()
        {
            PriorityQueueL<int> TestQueue = new PriorityQueueL<int>();

            TestQueue.Put(5, 0);

            Assert.AreEqual(5, TestQueue.Get());

            Assert.Throws<ApplicationException>(()=>TestQueue.Get());
        }
Пример #2
0
        static void Main(string[] args)
        {
            /* Сделать класс PriorityQueue, который может работать с любыми типами данных.
             * Методы класса:
             * Put(/данные/, /приоритет (только 3 варианта: высокий, средний или низкий)/)
             * Get() /извлекает первый наиболее приоритетный элемент из очереди/
             * Drop(/приоритет/) /удаляет из очереди, не используя, все элементы с указанным приоритетом/
             * При выполнении этого задания можно пользоваться коллекциями.*/

            List<string> menusList = new List<string>();
            menusList.Add("--Add 'char' element");
            menusList.Add("--Get 'char' element");
            menusList.Add("-Drop 'char' element");
            menusList.Add("----------------Exit");

            // Создание простой очереди с динамически увеличивающимся размером
            // и параметрическим типом элементов значимого типа
            PriorityQueueL<char> TestQueue = new PriorityQueueL<char>();

            TestQueue.Put('a', 1);
            TestQueue.Put('z', -1);
            TestQueue.Put('c', 1);
            TestQueue.Put('x', -1);
            TestQueue.Put('f', 0);
            TestQueue.Put('w', -1);
            TestQueue.Put('d', 0);
            TestQueue.Put('b', 1);
            TestQueue.Put('g', 0);

            bool key = true;
            do
            {
                switch (MenusFunc(menusList) + 1)
                {
                    case 1:
                        // Занесение елемента в очередь
                        TestQueue.Put(char.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()));
                        break;
                    case 2:
                        // Извлечение елемента из очереди
                        Console.WriteLine(TestQueue.Get() + "\n");
                        TestQueue.Print();
                        break;
                    case 3:
                        // Извлечение елемента из очереди
                        TestQueue.Drop(int.Parse(Console.ReadLine()));
                        TestQueue.Print();
                        break;
                    default:
                        key = !key;
                        break;
                }
            } while (key);
        }
Пример #3
0
        public void Do()
        {
            var q = new PriorityQueueL<string>();
            //var q = new PriorityQueue(22);
            q.Insert(new Item(1, "A"));
            q.Insert(new Item(19, "S"));
            q.Insert(new Item(15, "O"));
            q.Insert(new Item(18, "R"));
            q.Insert(new Item(20, "T"));
            q.Insert(new Item(9, "I"));
            q.Insert(new Item(14, "N"));
            q.Insert(new Item(7, "G"));
            q.Insert(new Item(5, "E"));
            q.Insert(new Item(24, "X"));
            q.Insert(new Item(1, "A"));
            q.Insert(new Item(13, "M"));
            q.Insert(new Item(16, "P"));
            q.Insert(new Item(12, "L"));
            q.Insert(new Item(5, "E"));

            string s;
            while (!q.IsEmpty())
            {
                s = q.GetMax();
            }

            List<Item> arr = new List<Item>(new[]
                         {
                                        new Item(1, "A"),
                                        new Item(19, "S"),
                                        new Item(15, "O"),
                                        new Item(18, "R"),
                                        new Item(20, "T"),
                                        new Item(9, "I"),
                                        new Item(14, "N"),
                                        new Item(7, "G"),
                                        new Item(5, "E"),
                                        new Item(24, "X"),
                                        new Item(1, "A"),
                                        new Item(13, "M"),
                                        new Item(16, "P"),
                                        new Item(12, "L"),
                                        new Item(5, "E")
                         });
            HeapSort(arr, 0, 13);
        }