我是靠谱客的博主 单身雪碧,最近开发中收集的这篇文章主要介绍所有出栈顺序python_使用python完成栈的基本操作,压栈,出栈、计算栈长,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在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完成栈的基本操作,压栈,出栈、计算栈长所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部