python栈是什么意义?
栈是一种特别的列表,栈内的元素只能经由过程列表的一端接见,这一端称为栈顶。栈被称为一种后入先出(LIFO,last-in-first-out)的数据结构。
因为栈具有后入先出的特性,所以任何不在栈顶的元素都无法接见。为了获得栈底的元素,必须先拿掉上面的元素。
对栈的两种重要操纵是将一个元素压入栈和将一个元素弹出栈。入栈运用push()要领,出栈运用pop()要领。
另一个经常使用的操纵是预览栈顶的元素。pop()要领虽然能够接见栈顶的元素,然则挪用该要领后,栈顶元素也从栈中被永远性地删除了。peek()要领则只返回栈顶元素,而不删除它。
为了纪录栈顶元素的位置,同时也为了标记那里能够到场新元素,我们运用变量top,当向栈内压入元素时,该变量增大;从栈内弹出元素时,该变量减小。
push()、pop()和peek()是栈的3个重要要领,然则栈另有其他要领和属性。
stack一般的操纵:
Stack() 竖立一个空的栈对象 push() 把一个元素添加到栈的最顶层 pop() 删除栈最顶层的元素,并返回这个元素 peek() 返回最顶层的元素,并不删除它 isEmpty() 推断栈是不是为空 size() 返回栈中元素的个数
简朴案例以及操纵效果:
这里运用python的list对象模仿栈的完成:
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())
相干引荐:《Python教程》
以上就是python栈是什么意义的细致内容,更多请关注ki4网别的相干文章!