C#中的栈结构

使用Stack结构模拟一个表达式的运算过程,如2+3*4。

为什么下面运行会出错,谁可以写一个简短的代码吗?

Stack sk = new Stack();

            sk.Push(2);

            sk.Push(3);

            sk.Push(4);

            sk.Push('*');

            sk.Push('+');

            sk.Push('=');

            foreach (char c in sk)

            {

                Console.Write(c);

            }


三色堇忞
浏览 1035回答 1
1回答

一毛钱

类型转换问题,你把int转换为char出错,这块可以这样写foreach(var c in sk){ Console.Write(c); }需要注意是var 出现在.net framework 3.5 以后,还有就是栈是后进先出的 所以你的结果是=+*432,想输出你的要的结果应该这样写Stack sk = new Stack();             sk.Push('=');             sk.Push(4);             sk.Push('*');             sk.Push(3);             sk.Push('+');             sk.Push(2);             foreach (var c in sk)             {                 Console.Write(c);             }             Console.ReadLine();
打开App,查看更多内容
随时随地看视频慕课网APP