Python算法之栈(stack)的实现

本文以实例形式展示了Python算法中栈(stack)的实现,对于学习数据结构域算法有一定的参考借鉴价值。具体内容如下:

1.栈stack通常的操作:

Stack() 建立一个空的栈对象
push() 把一个元素添加到栈的最顶层
pop() 删除栈最顶层的元素,并返回这个元素
peek()  返回最顶层的元素,并不删除它
isEmpty()  判断栈是否为空
size()  返回栈中元素的个数

2.简单案例以及操作结果:

?
1
2
3
4
5
6
7
8
9
10
11
12
Stack Operation      Stack Contents   Return Value
  s.isEmpty()   []        True
  s.push( 4 )   [ 4 ]
  s.push( 'dog' )   [ 4 , 'dog' ]
  s.peek()   [ 4 , 'dog' ]    'dog'
  s.push( True )   [ 4 , 'dog' , True ]
  s.size()   [ 4 , 'dog' , True ]   3
  s.isEmpty()   [ 4 , 'dog' , True ]   False
  s.push( 8.4 )   [ 4 , 'dog' , True , 8.4 ]
  s.pop()       [ 4 , 'dog' , True ]   8.4
  s.pop()       [ 4 , 'dog' ]     True
  s.size()   [ 4 , 'dog' ]     2

这里使用python的list对象模拟栈的实现,具体代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#coding:utf8
class Stack:
   """模拟栈"""
   def __init__( self ):
     self .items = []
     
   def isEmpty( self ):
     return len ( self .items) = = 0
   
   def push( self , item):
     self .items.append(item)
   
   def pop( self ):
     return self .items.pop()
   
   def peek( self ):
     if not self .isEmpty():
       return self .items[ len ( self .items) - 1 ]
     
   def size( self ):
     return len ( self .items)
s = Stack()
print (s.isEmpty())
s.push( 4 )
s.push( 'dog' )
print (s.peek())
s.push( True )
print (s.size())
print (s.isEmpty())
s.push( 8.4 )
print (s.pop())
print (s.pop())
print (s.size())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值