コード例 #1
0
        public static void Main(string[] args)
        {
            SequencedQueue <int> queue = new SequencedQueue <int>();
            SequencedStack <int> stack = new SequencedStack <int>();
            int length = 0;

            queue.Enqueue(10);
            queue.Enqueue(20);
            queue.Enqueue(30);
            queue.Enqueue(50);
            queue.Enqueue(50);
            queue.Enqueue(60);
            Console.WriteLine("The num in original order:");
            length = queue.Count;
            for (int i = 0; i < length; i++)
            {
                int temp = queue.Dequeue();
                Console.Write(temp + "  ");
                stack.Push(temp);
            }
            Console.WriteLine();
            Console.WriteLine("The num in reverse order:");
            length = stack.Count;
            for (int i = 0; i < length; i++)
            {
                Console.Write(stack.Pop() + "  ");
            }
            Console.WriteLine();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            SequencedQueue <int> sequencedqueue = new SequencedQueue <int>(NUM);
            SequencedStack <int> sequencedstack = new SequencedStack <int>(NUM);

            //以下for可以合并为1个
            //将数字放入队列并显示
            for (int i = 0; i < NUM; i++)
            {
                sequencedqueue.Enqueue(i);
            }
            Console.Write("原来的队列: ");
            sequencedqueue.Show(false);

            //将队列元素依次入栈
            for (int i = 0; i < NUM; i++)
            {
                sequencedstack.Push(sequencedqueue.Dequeue());
            }

            foreach (var item in sequencedstack.Elements)
            {
                Console.Write("{0} ", item);
            }

            //将栈元素依次弹出到队列
            for (int i = 0; i < NUM; i++)
            {
                sequencedqueue.Enqueue(sequencedstack.Pop());
            }
            Console.Write("反序后队列: ");
            sequencedqueue.Show(false);
        }