[Python] 队列和双端队列
队列抽象数据类型 队列是元素的有序集合,添加操作发生在其尾部,移除操作则发生在头部。队列的操作顺序是 FIFO(first-in first-out),它支持以下操作: Queue() 创建一个空队列。它不需要参数,且会返回一个空队列。 enqueue(item) 在队列的尾部添加一个元素。它需要一个元素作为参数,不返回任何值。 dequeue() 从队列的头部移除一个元素。它不需要参数,且会返
队列抽象数据类型 队列是元素的有序集合,添加操作发生在其尾部,移除操作则发生在头部。队列的操作顺序是 FIFO(first-in first-out),它支持以下操作: Queue() 创建一个空队列。它不需要参数,且会返回一个空队列。 enqueue(item) 在队列的尾部添加一个元素。它需要一个元素作为参数,不返回任何值。 dequeue() 从队列的头部移除一个元素。它不需要参数,且会返
栈抽象数据类型 栈是元素的有序集合,添加操作与移除操作都发生在其顶端。栈的操作顺序是 LIFO(last-in first-out),即后进先出。它支持以下操作: Stack() 创建一个空栈。它不需要参数,且会返回一个空栈。 push(item) 将一个元素添加到栈的顶端。它需要一个参数 item,且无返回值。 pop() 将栈顶端的元素移除。它不需要参数,但会返回顶端的元素,并且修改栈的内容
常见的大 $O$ 函数 $f(n)$ 名称 $1$ 常数 $\log{n}$ 对数 $n$ 线性 $n\log{n}$ 对数线性 $n^{2}$ 平方 $n^{3}$ 立方 $2^{n}$ 指数
例:逻辑门与电路 子类从父类继承共同的特征,但是通过额外的特征彼此区分。为了进一步探索这个概念,我们来构建一个模拟程序,用于模拟数字电路。逻辑门是这个模拟程序的基本构造单元,它们代表其输入和输出之间的布尔代数关系。一般来说,逻辑门都有单一的输出。输出值取决于提供的输入值。 与门( AND gate):有两个输入,每一个都是 0 或 1(分别代表 False 和 True)。如果两个输入都是 1
例: Fraction 类 重写 __init__ 方法 要创建一个 Fraction 对象,需要提供分子和分母两部分数据。在 Python 中,构造方法总是命名为 __init__ (即在 init 的前后分别有两个下划线) Fraction 类及其构造方法: class Fraction: def __init__(self, top, bottom): s