示例#1
0
        static void Queued()
        {
            Classes.Queue queue = new Classes.Queue(new Node(1));
            queue.Enqueue(new Node(2));
            queue.Enqueue(new Node(3));
            queue.Enqueue(new Node(4));

            Console.WriteLine("================= Queue ================");
            Console.WriteLine($"Node dequeued: {queue.Dequeue().Value}");
            Console.WriteLine($"Node dequeued: {queue.Dequeue().Value}");
            Console.WriteLine($"Node dequeued: {queue.Dequeue().Value}");
            Console.WriteLine($"Node dequeued: {queue.Dequeue().Value}");
        }
        public void CanGetNodeFromDequeue(int[] nodes, int expected, int times)
        {
            queuesWithStacks.Classes.Queue queue = new queuesWithStacks.Classes.Queue(new Node(nodes[0]));

            for (int i = 1; i < nodes.Length; i++)
            {
                queue.Enqueue(new Node(nodes[i]));
            }

            for (int i = 1; i < times; i++)
            {
                queue.Dequeue();
            }

            Assert.Equal(expected, (int)queue.Dequeue().Value);
        }
        public void NodeOrderRemainsAfterBeingDequeued(int[] nodes, int[] expected)
        {
            queuesWithStacks.Classes.Queue queue = new queuesWithStacks.Classes.Queue(new Node(nodes[0]));
            int[] arr = new int[nodes.Length];

            for (int i = 1; i < nodes.Length; i++)
            {
                queue.Enqueue(new Node(nodes[i]));
            }

            for (int i = 0; i < nodes.Length; i++)
            {
                arr[i] = (int)queue.Dequeue().Value;
            }

            Assert.Equal(expected, arr);
        }