数据结构之栈————括号匹配问题

相信大家对栈这个名词都是有一些了解的。但是具体什么是栈呢?栈的作用?我们先来看一下百度百科给的解释:

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底,栈底固定,而站顶浮动,当栈中元素个数为零时称这个栈为空栈。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。所谓“栈”者,货物的中转站也,可以引申为仓库。所以引用到计算机领域里面,就是指数据暂时存储的地方,所以才会有进栈啊、出栈的说法。

首先系统或者数据结构栈中数据类容的读取与插入(入栈push和出栈pop)是两回事,差入是增加数据,弹出是删除数据。这些操作只能从栈顶元素操作,但是读取栈中元素是没有任何约束的,也就是说可以读取栈中的任何元素。

系统栈在计算机体系结构中又起到一个跨部件交互的媒介区域的作用,也就是cpu与内存的交流通道,cpu只从系统给我们自己编写的应用程序所规定的栈入口线性的读取执行指令,用一个形象的词来形容它就是管道线、流水线。

栈在程序运行的过程中起着很大的作用。最重要的是栈保存了函数调用时所需要维护的信息,这常常被称为堆栈帧或者活动记录。堆栈帧一般包括以下两个方面的信息:

1.函数的返回地址和参数。

2.临时变量:包含函数的非晶态局部变量以及编辑器自动生成的其他变量。

栈分为顺序栈和链式栈,基本的算法有:进栈push,获取栈顶元素peek,出栈pop等等。我们通常会用栈来解决括号匹配问题,如一下代码实现了判断括号是否匹配。

        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.Green;
            string st = "([()[](()){}])";
            if (Stack(st))
            {
                Console.WriteLine("括号匹配");
            }
            else
            {
                Console.WriteLine("括号不匹配");
            }
            Console.ReadKey();
        }
        public static bool Stack(string st)
        {
            Stack<char> newsatck = new Stack<char>();
            foreach (char i in st)
            {
                switch(i)
                {
                    case '(':
                        newsatck.Push(i);
                        break;
                    case '[':
                        newsatck.Push(i);
                        break;
                    case '{':
                        newsatck.Push(i);
                        break;
                    case ')':
                        if ( newsatck.Peek() == '(')
                        {
                            newsatck.Pop();
                        }
                        else
                        {
                            newsatck.Push(i);
                        }
                        break;
                    case ']':
                        if ( newsatck.Peek() == '[')
                        {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
                             newsatck.Pop();  
                        }
                        else
                        {
                            newsatck.Push(i);
                        }
                        break;
                    case '}':
                        if ( newsatck.Peek() == '{')
                        {
                            newsatck.Pop();
                        }
                        else
                        {
                            newsatck.Push(i);
                        }
                        break;
                }
            }
            
            if (newsatck.Count==0)
            {
                return true;
            }
            else
            {
                return false;
            }
            
        }

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值