栈和队列

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

二.队列
队列是一种数据结构,有点类似栈,但是队列中第一个插入的元素也会最先被移除(先进先出,FIFO)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值