概述
在python中不存在指针,所有需要进行链栈的操作时,自己初始化一个栈的结点类,其中定义栈每一个结点的属性,一个next,一个数据;后边的队列和二叉树的完成使用同样的原理,自己定义每一个数据结构的结点属性值
顺序栈的操作
'''栈的基本操作'''
class StackList(object):
def __init__(self):
self._item = []
#判断是否为空
def is_empty(self):
return self._item == []
#出栈
def put(self):
return self._item.pop()
#入栈
def push(self,_stack):
return self._item.append(_stack)
#拿取栈顶元素
def peek(self):
return self._item[len(self._item) - 1]
#计算栈的长度
def size(self):
return len(self._item)
if __name__ == '__main__':
s=StackList()
print('初始栈是否为空:',s.is_empty())
s.push("A")
s.push("B")
s.push("C")
s.push("D")
s.push("E")
s.push("F")
print('进栈之后判断是否为空:',s.is_empty())
print('栈的长度:',s.size())
print('栈顶元素:',s.peek())
print('出栈元素:',s.put())
print('出栈之后的栈顶元素:',s.peek())
链栈的基本操作
'''链栈的完成'''
#定义链栈的结点
class StackNode(object):
def __init__(self):
self._stadata = None
self._stanext = None
class Stack(object):
def __init__(self):
#初始化一个top指针
self._top = StackNode()
# 初始化一个栈元素个数变量
self._size = 0
#判栈空
def is_empty(self):
if self._top == None:
return True
else:
return False
#栈元素个数
def sizeStack(self):
return self._size
#进栈
def pushStack(self,stack_data):
#定义一个栈结点
stackNode = StackNode()
#进栈的元素赋值
stackNode._stadata = stack_data
#元素指针移动
stackNode._stanext = self._top._stanext
#top指针指向加入的元素
self._top._stanext = stackNode
#栈元素个数+1
self._size += 1
return
#出栈
def putStack(self):
#判断栈是否为空
if self.is_empty():
return 'there is no element'
else:
#出栈元素为top指针的next指向的元素
stackNode = self._top._stanext
#top指针移动
self._top._stanext = stackNode._stanext
#栈元素个数-1
self._size -= 1
#返回出栈元素
return stackNode._stadata
#获取栈顶元素
def peekStack(self):
#判断栈是否为空
if self.is_empty():
return 'there is no element'
else:
return self._top._stadata
if __name__ == '__main__':
s = Stack()
count = 0
for i in range(ord('A'),ord('Z')+1):
count += 1
s.pushStack(chr(i))
print('进栈完栈元素个数:',s.sizeStack())
print('出栈元素:',end='')
for i in range(1,count+1):
print(s.putStack(),end=' ')
print('n出栈完栈元素个数:', s.sizeStack())
desperate 丶拼命
发布了21 篇原创文章 · 获赞 1 · 访问量 356
私信
关注
标签:__,出栈,python,self,return,._,基本操作,top,def
来源: https://blog.csdn.net/qq_45061361/article/details/103940821
最后
以上就是单身雪碧为你收集整理的所有出栈顺序python_使用python完成栈的基本操作,压栈,出栈、计算栈长的全部内容,希望文章能够帮你解决所有出栈顺序python_使用python完成栈的基本操作,压栈,出栈、计算栈长所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复