所有出栈顺序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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值