python有栈的概念吗_python有栈吗

python有栈吗?

python是有栈的。栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIFO)的特征。

对栈的两种主要操作是将一个元素压入栈和将一个元素弹出栈。

入栈使用push()方法,出栈使用pop()方法

另一个常用的操作是预览栈顶的元素。pop()方法虽然可以访问栈顶的元素,但是调用该方法后,栈顶元素也从栈中被永久性地删除了。peek()方法则只返回栈顶元素,而不删除它

为了记录栈顶元素的位置,同时也为了标记哪里可以加入新元素,我们使用变量top,当向栈内压入元素时,该变量增大;从栈内弹出元素时,该变量减小

push()、pop()和peek()是栈的3个主要方法,但是栈还有其他方法和属性

stack通常的操作:Stack() 建立一个空的栈对象

push() 把一个元素添加到栈的最顶层

pop() 删除栈最顶层的元素,并返回这个元素

peek() 返回最顶层的元素,并不删除它

isEmpty() 判断栈是否为空

size() 返回栈中元素的个数#-*- coding:?UTF-8 -*-

__author__ = 'Administrator'

#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教程》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,堆(heap)和栈(stack)是两种不同的概念。 堆是一种内存管理方式,在程序内存布局场景下表示动态分配的内存空间。在Python中,我们可以使用heapq模块来实现优先级队列。优先级队列是一种特殊的队列,其中每个元素都有一个优先级,优先级高的元素先被取出。通过使用堆来实现优先级队列,可以高效地插入和删除元素。在给定的例子中,我们通过实现PriorityQueue类来创建一个优先级队列,其中push方法用来插入元素并指定优先级,pop方法用来取出优先级最高的元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python中的堆和栈](https://blog.csdn.net/unicorn_mitnick/article/details/129619601)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python堆和栈的区别](https://blog.csdn.net/weixin_49738644/article/details/127994071)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值