python - 栈与队列(只有代码)

1. 栈:

- 后进先出

class Stack(object):
    def __init__(self):
        self.stack = []

    def peek(self):
        return self.stack[len(self.stack)-1]

    def empty(self):
        return self.stack == []

    def push(self, values):
        self.stack.append(values)
        return values

    def pop(self):
        try:
            return self.stack.pop()
        except IndexError as q:
            return None

2. 队列:

- 先进先出

class Queue(object):
    def __init__(self, max_len):
        self.len = max_len  # 记录队列的最大存储量
        self.index = -1  # 记录队列的索引
        self.q = []  # 存储队列的数据

    def push(self, values):
        if len(self.q) == self.len:
            print(‘len_q : ‘,len(self.q))
            print(‘len : ‘,self.len)
            raise IndexError("Queue is full")
        else:
            self.index += 1
            return self.q.append(values)

    def pop(self):
        if self.index == -1:
            raise IndexError("Queue is empty")
        self.index -= 1
        return self.q.pop(0)

q = Queue(2)
for i in range(3):
    q.push(i)

print(q.pop())
print(q.pop())

原文地址:https://www.cnblogs.com/chaoqi/p/10569023.html

时间: 2024-07-31 16:30:38

python - 栈与队列(只有代码)的相关文章

数据结构之链表、栈和队列 java代码实现

定义抽象节点类Node: 1 package cn.wzbrilliant.datastructure; 2 3 /** 4 * 节点 5 * @author ice 6 * 7 */ 8 public abstract class Node { 9 private Node next; 10 11 public Node(){ 12 next=null; 13 } 14 15 public void setNext(Node nextNode){ 16 next=nextNode; 17 }

[DS+Algo] 004 栈、队列及其代码实现

1. Stack FILO (FirstInLastOut) 的链表结构 在程序编译环境上使用较多 常用操作 push pop peek is_empty size Python 代码示例 class Stack(object): def __init__(self): self.items = [] def is_empty(self): return self.items == [] def push(self, item): self.items.append(item) def pop(

python 栈和队列(使用list实现)

5.1.1. Using Lists as Stacks The list methods make it very easy to use a list as a stack, where the last element added is the first element retrieved ("last-in, first-out"). To add an item to the top of the stack, use append(). To retrieve an it

Python学习之路15——列表实现栈和队列

栈 栈是一种后进先出(LIFO)的数据结构.你可以通过push操作来向栈中添加一个对象,也可以通过pop操作来返回并删除栈顶对象. 以下是列表模拟栈的代码: <span style="font-size:14px;">#!/usr/bin/env python 'stack.py create a stack' stack = [] def pushit(): stack.append(raw_input('Enter New string: ').strip()) def

python——python数据结构之栈、队列的实现

这个在官网中list支持,有实现. 补充一下栈,队列的特性: 1.栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIFO)的特征 2.队列(queue)是一种具有先进先出特征的线性数据结构,元素的增加只能在一端进行,元素的删除只能在另一端进行.能够增加元素的队列一端称为队尾,可以删除元素的队列一端则称为队首. 地址在 http://docs.python.org/2/tutorial/datastructures.

python实现stack(栈)和队列(queue)

栈和队列是两种基本的数据结构,同为容器类型.两者根本的区别在于: stack:后进先出 queue:先进先出 stack和queue是没有查询具体某一个位置的元素的操作的.但是他们的排列是按顺序的 对于stack我们可以使用python内置的list实现,因为list是属于线性数组,在末尾插入和删除一个元素所使用的时间都是O(1),这非常符合stack的要求.当然,我们也可以使用链表来实现. stack的实现代码(使用python内置的list),实现起来是非常的简单,就是list的一些常用操作

LeetCode | 面试题09. 用两个栈实现队列【剑指Offer】【Python】

LeetCode 面试题09. 用两个栈实现队列[剑指Offer][Easy][Python][栈][队列] 问题 力扣 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能.(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: ["CQueue","appendTail","deleteHead","

《数据结构》C++代码 栈与队列

线性表中,先进先出的叫队列,先进后出的叫栈.队列常用于BFS,而在函数递归层数过高时,需要手动实现递归过程,这时候便需要写一个“手动栈”. 有时候,我们会有大量数据频繁出入队列,但同时存在其内的元素却不多,此时需要写“循环队列”.其代码并不难,但里面下标递增的语句值得斟酌一下. k=(k+1)%maxn; 这句话用到了取模运算%,是非常浪费时间的.若能避免使用%,则可以大大提高代码运行速度.我做了一个测试,把下面五种语句写法分别运行5×10^8次,在我的机器上用codeblocks10.05各运

Python实现栈、队列

目录 1. 栈的Python实现 1.1 以列表的形式简单实现栈 1.2 以单链表形式实现栈 2. 队列的Python实现 2.1 以列表实现简单队列 ? 本文将使用python实现数据结构中的栈.队列:有关栈.队列的理论原理请参考:<数据结构与算法>-3-栈和队列: 1. 栈的Python实现 1.1 以列表的形式简单实现栈 """ 以列表的形式简单实现栈 栈:先进后出 """ class Stack: def __init__(s