栈和队列

来源:互联网 发布:淘宝网羊绒线儿童 编辑:程序博客网 时间:2024/05/29 02:47
一.栈(stack先进后出)
    栈只允许访问一个数据项:即最后插入的数据项。移除这个数据项才能访问倒数第二个插入的数据项,依次类推。这种机制在不少编程环境中都非常有用。比如按规则解析字符串等。
    生活中有人收到信后,会随手把它放在桌子上的信堆上,等到他们有空闲的时候,就从上到下依次处理信件,每次都拿堆叠在最上层的那一封。第一封处理完了,就处理第二封,直到最后轮到处理信堆最下面的一张(此时它在信堆的最上面)。只有能在合理时间内处理完所有信件,这种“优先处理最上层信件”的方法才不会产生麻烦。否则,会发生接连几个月也处理不到压在堆底信件的危险!
图片
栈工作示意图 
栈中主要方法:
push(Object obj):入栈。入栈的数据项放在栈顶
pop(); 出栈。出栈的数据从栈顶拿。
peek():获取栈顶元素而不出栈 。
栈应用简单实例:字符串逆转,分隔符匹配。如:a{b(c)},后出现的左分隔符(左括号)要比先出现的(左大括号)先完成匹配。+

二.队列
队列是一种数据结构,有点类似栈,但是队列中第一个插入的元素也会最先被移除(先进先出,FIFO)
1 0
原创粉丝点击