三十九、python-出栈和列表
39.1 出栈入栈–stack
-
栈:先进后出
-
pop(出栈)push(入栈)
-
len(获取栈的长度)
-
is_empty(判断栈是否为空)
-
top(栈顶)
-
代码
class stack (object): # 定义类
def __init__(self): # 定义栈首先为空
self.stack=[]
def is_empty(self): #判断栈是否为空
return self.stack==[]
def push (self,item): # 入栈
self.stack.append(item)
print("Success %s"%(item))
def pop(self): # 出栈
if self.is_empty(): # 先判断是否为空栈
raise Exception("Empty stack")
else: #不为空的话直接出栈
item=self.stack.pop()
print("The elements out of the stack are %s" %(item))
def top(self): # 输出栈顶
if self.is_emply():
raise Exception("Empty stack. NO item")
else:
return self.stack[-1]
def __len__(self): #新的魔术方法:当执行len(s)时会自动执行该魔术方法
return len(self.stack)
s=stack()
for item in range(5):
s.push(item)
for item in range(2):
s.pop()
print("The stack's lenge is ",len (s))
print("Empty?",s.is_empty())
- 练习
39.2 列表—queue
- 列表:先进先出
- pop(出列)push(入列)
- len(获取列表的长度)
- is_empty(判断列表是否为空)
- get_first(栈顶)
- 代码
class queue (object): # 定义类
def __init__(self): # 定义栈首先为空
self.queue=[]
def is_empty(self): #判断栈是否为空
return self.queue==[]
def push (self,item): # 入栈
self.queue.append(item)
print("Success %s"%(item))
def pop(self): # 出栈
if self.is_empty(): # 先判断是否为空栈
raise Exception("Empty stack")
else: #不为空的话直接出栈
item=self.queue.pop(0)
print("The elements out of the stack are %s" %(item))
def get_first(self): # 输出栈顶
if self.is_emply():
raise Exception("Empty stack. NO item")
else:
return self.queue[0]
def __len__(self): #新的魔术方法:当执行len(s)时会自动执行该魔术方法
return len(self.queue)
s=stack()
for item in range(5):
s.push(item)
for item in range(2):
s.pop()
print("The queue's lenge is ",len (s))
print("Empty?",s.is_empty())
- 练习