您的位置:首页 > 其它

栈和队列

2016-07-22 12:11 197 查看
一.栈(stack先进后出)
    栈只允许访问一个数据项:即最后插入的数据项。移除这个数据项才能访问倒数第二个插入的数据项,依次类推。这种机制在不少编程环境中都非常有用。比如按规则解析字符串等。
    生活中有人收到信后,会随手把它放在桌子上的信堆上,等到他们有空闲的时候,就从上到下依次处理信件,每次都拿堆叠在最上层的那一封。第一封处理完了,就处理第二封,直到最后轮到处理信堆最下面的一张(此时它在信堆的最上面)。只有能在合理时间内处理完所有信件,这种“优先处理最上层信件”的方法才不会产生麻烦。否则,会发生接连几个月也处理不到压在堆底信件的危险!



栈工作示意图 
栈中主要方法:
push(Object obj):入栈。入栈的数据项放在栈顶
pop(); 出栈。出栈的数据从栈顶拿。
peek():获取栈顶元素而不出栈 。
栈应用简单实例:字符串逆转,分隔符匹配。如:a{b(c)},后出现的左分隔符(左括号)要比先出现的(左大括号)先完成匹配。+

二.队列

队列是一种数据结构,有点类似栈,但是队列中第一个插入的元素也会最先被移除(先进先出,FIFO)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  队列