예제 #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 CanEnqueueNode()
        {
            Node node         = new Node(9);
            Node enqueuedNode = new Node(8);

            queuesWithStacks.Classes.Queue queue = new queuesWithStacks.Classes.Queue(node);
            queue.Enqueue(enqueuedNode);
            Assert.Equal(queue.Peek(), node);
        }
        public void CanPeek()
        {
            Node nodeOne = new Node(3);
            Node nodeTwo = new Node(2);

            queuesWithStacks.Classes.Queue queue = new queuesWithStacks.Classes.Queue(nodeOne);
            queue.Enqueue(nodeTwo);

            Assert.Equal(queue.Peek(), nodeOne);
        }
        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);
        }