MAX_SIZE = 100
class SqStack:
def __init__(self):
# 初始化顺序栈
self.elem = [None] * MAX_SIZE # 为顺序栈动态分配⼀个最⼤容量为MAX_SIZE的数组空间
self.top, self.base = 0, 0 # top和base都指向栈底元素在顺序栈中的位置,空栈
self.stack_size = MAX_SIZE # stack_size置为栈的最⼤容量MAX_SIZE
def push(self, e):
# 将元素压⼊栈
if self.top - self.base == self.stack_size: # 栈满
raise Exception('栈空间已满')
self.elem[self.top] = e # 元素e压⼊栈顶,栈顶指针加1
self.top += 1
def pop(self):
# 将栈顶元素弹出
if self.top == self.base:
raise Exception('栈已空')
self.top -= 1 # 栈顶指针减1,并返回栈顶元素
return self.elem[self.top]
def get_top(self):
# 返回栈顶元素
if self.top != self.base: # 栈⾮空
return self.elem[self.top - 1]
else:
raise Exception('栈已空')
def stack_empty(self):
# 判断栈是否为空
return self.top == self.base
def __len__(self):
# 栈的⻓度
return self.top - self.base
class ArcNode: # 边结点
def __init__(self):
self.adjvex = 0 # 该边所指向的顶点的位置
self.nextarc = None # 指向下⼀条边的指针
self.weight = None # 边的权重
class VNode: # 顶点信息
评论0