示例#1
0
        static void Main(string[] args)
        {
            MyQueue <int> myQueue = new MyQueue <int>();

            myQueue.Enqueue(1);
            myQueue.Enqueue(3);
            myQueue.Enqueue(4);
            myQueue.Enqueue(5);
            myQueue.Enqueue(6);
            myQueue.Enqueue(7);
            myQueue.Enqueue(8);
            Console.WriteLine("Queue - {0}", myQueue.ToString());
            Console.WriteLine("Operation Dequeue - {0}", myQueue.Dequeue());
            Console.WriteLine("Operation Peek - {0}", myQueue.Peek());
            Console.WriteLine("Queue - {0}", myQueue.ToString());
            Console.WriteLine("Count - {0}", myQueue.Count());
        }
示例#2
0
 public void TestReadWriteLock()
 {
     try
     {
         Stopwatch stop = new Stopwatch();
         stop.Start();
         List <string> list = new List <string>(100);
         for (int i = 0; i < list.Capacity; i++)
         {
             list.Add("字符串:" + i);
         }
         MyQueue mq   = new MyQueue(list);
         string  last = list[list.Count - 1];
         for (int i = 0; i < list.Capacity; i++)
         {
             ThreadPool.QueueUserWorkItem(o =>
             {
                 mq.LootFirst();
                 //Console.WriteLine(mq.LootFirst());
             });
         }
         while (mq.Count > 0)
         {
             ThreadPool.QueueUserWorkItem(o =>
             {
                 foreach (var item in mq)
                 {
                     if (item == last)
                     {
                         Console.WriteLine("最后的值还在");
                     }
                 }
             });
         }
         stop.Stop();
         Console.WriteLine("花费的时间:" + stop.ElapsedMilliseconds);
     }
     catch (Exception ex)
     { }
 }
示例#3
0
        static void Main(string[] args)
        {
            Queue <int> queue = new Queue <int>();

            queue.Enqueue(5);
            queue.Enqueue(6);
            queue.Enqueue(7);
            queue.Enqueue(8);

            Console.WriteLine(queue.Peek());

            Console.WriteLine("---------------");

            MyQueue <int> myQueue = new MyQueue <int>();

            myQueue.Enqueue(5);
            myQueue.Enqueue(6);
            myQueue.Enqueue(7);
            myQueue.Enqueue(8);

            Console.WriteLine(myQueue.Peek());
        }
示例#4
0
        static void Part4()
        {
            MyQueue <Transport> list = new MyQueue <Transport>();
            bool flag = true;

            while (flag)
            {
                Console.Write(MenuQueue);
                int ch = Input.IntCheckConsole();
                try
                {
                    switch (ch)
                    {
                    case 1:
                        #region
                        Console.Write("Введите размер нового списка: ");
                        int         size = Input.IntCheckConsole();
                        Transport[] arr  = new Transport[size];
                        for (int i = 0; i < size; i++)
                        {
                            if (i % 4 == 0)
                            {
                                arr[i] = (new Transport(rand.Next(1, 800), rand.Next(1, 1000)));
                            }
                            else if (i % 3 == 0)
                            {
                                arr[i] = (new Avtomobile(MasName[rand.Next(0, 4)], rand.Next(1, 300), rand.Next(1, 10)));
                            }
                            else if (i % 2 == 0)
                            {
                                arr[i] = (new Rain(rand.Next(1, 100), rand.Next(1, 400), rand.Next(1, 1000)));
                            }
                            else
                            {
                                arr[i] = (new Express(MasNameOfExpress[rand.Next(0, 4)], rand.Next(1, 100), rand.Next(1, 800), rand.Next(1, 1000)));
                            }
                        }
                        list = new MyQueue <Transport>(arr);
                        #endregion

                        break;

                    case 2:
                        #region
                        Console.Write("Введите номер нового элемента: ");
                        int       pos = Input.IntCheckConsole();
                        Transport k   = new Transport(rand.Next(1, 800), rand.Next(1, 1000));
                        list.Insert(pos - 1, k);
                        #endregion

                        break;

                    case 3:
                        #region
                        Console.Write("Введите номер элемента, который вы хотите удалить: ");
                        pos = Input.IntCheckConsole();
                        list.RemoveAt(pos - 1);
                        #endregion
                        break;

                    case 4:
                        foreach (var it in list)
                        {
                            PrintColor(it, ConsoleColor.DarkYellow);
                        }

                        break;

                    case 5:
                        PrintColor("Введите индекс элемента, который хотите вывести:", ConsoleColor.Blue);
                        size = Input.IntCheckConsole();
                        PrintColor(list[size - 1], ConsoleColor.DarkYellow);

                        break;

                    case 6:
                        #region
                        PrintColor("Введите элемент для поиска", ConsoleColor.Blue);
                        PrintColor("Введите скорость:", ConsoleColor.Blue);
                        int c = Input.IntCheckConsole();
                        PrintColor("Введите количество человек: ", ConsoleColor.Blue);
                        int s = Input.IntCheckConsole();
                        k = new Transport(c, s);
                        PrintColor("Существование данного элемента: ", ConsoleColor.Blue);
                        PrintColor(list.Contains(k), ConsoleColor.Yellow);
                        PrintColor("Его первое вхождение: ", ConsoleColor.Blue);
                        PrintColor(list.IndexOf(k) + " - начиная с нуля.", ConsoleColor.Green);
                        #endregion

                        break;

                    case 7:
                        flag = !flag;
                        break;

                    default:
                        #region
                        PrintColor("Неопрознанное значение!", ConsoleColor.Red);
                        #endregion

                        break;
                    }
                }
                catch (Exception e)
                {
                    PrintColor(e.Message, ConsoleColor.Red);
                }
            }
        }