python list实现队列和栈功能

  1. 添加:队列和栈都是从尾部/顶部添加元素:则直接使用append()即可

  2. 删除:
    list的pop函数,默认pop()删除列表的最后一个元素,符合栈的模式 list.pop(idx) 删除列表第idx
    个元素,则pop(0),就是删除队列头部元素

  3. 获取长度:len

  4. 获取栈顶元素:list[-1]

  5. 获取队列头部元素: list[0]

Python实现队列可以通过内置的数据结构列表(list)来完成,也可以通过定义类来创建自己的队列。 对于实现,它是后进先出(LIFO)的数据结构,通常使用列表的append()方法来添加元素,以及pop()方法来移除最后一个添加的元素。 ```python class Stack: def __init__(self): self.items = [] def is_empty(self): return len(self.items) == 0 def push(self, item): self.items.append(item) def pop(self): if not self.is_empty(): return self.items.pop() raise IndexError("pop from empty stack") def peek(self): if not self.is_empty(): return self.items[-1] raise IndexError("peek from empty stack") def size(self): return len(self.items) ``` 对于队列实现,它是先进先出(FIFO)的数据结构,通常使用列表的append()方法来添加元素到队尾,以及pop(0)方法来移除队首的元素。 ```python class Queue: def __init__(self): self.items = [] def is_empty(self): return len(self.items) == 0 def enqueue(self, item): self.items.append(item) def dequeue(self): if not self.is_empty(): return self.items.pop(0) raise IndexError("dequeue from empty queue") def size(self): return len(self.items) ``` 在实际应用中,需要注意的是,Python列表的pop(0)操作在大数据集上效率较低,因为它需要移动列表中除第一个元素外的所有元素。在性能敏感的场合,可以考虑使用collections.deque来代替列表,因为它被优化为快速地从两端添加和移除元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值