数组与队列算法
二者均是抽象数据类型( Abstract Data Type, ADT ) 堆栈在 Python 中包含两种方式,分别是数组结构(以List仿真数组结构)和链表结构 用数组实现堆栈 设计算法简单。但是,如果堆栈本身大小是可以变动的,而数组大小只能事先规划和声明好,那么数组规划大了会浪费空间,小了不够用。 判断是否为空堆栈 def is_empty(): global top if top == -1: # 顶端 return True else: return False 入栈 def push(data): global top global MAXSTACK # 堆栈最大容量 global stack # stack = [None] * MAXSTACK 声明堆栈 if top >= MAXSTACK - 1: return "堆栈已满" else: top += 1 stack[top] = data 出栈 def pop(): global top global stack if is_empty(): return "堆栈是空的" else: data = stask[top] top -= 1 return data 用链表实现堆栈 算法复杂。动态改变链表长度,有效利用内存资源。 class Node: def __init__(self): self.data =