Python数据结构之链表栈
- 链表栈:通过top指针来连接新的数据
- 重点: 它的指针总是指向下一个地址,bottom不存储数据;
标题代码部分
- 初始化
class Link_Stack:
def __init__(self, value):
self.data = value
self.next = None
def init(bott):
init_data = [5, 2, 7, 3, 2]
for data in init_data:
new_data = Link_Stack(value=data)
new_data.next = bott
bott = new_data
return bott
- 判断空
def is_Empty(bott):
if bott is None:
return True
else:
return False
- 压入数据
def push(value):
global top
new_data = Link_Stack(value)
new_data.next = top
top = new_data
- 出栈
def pop():
global top
pop_data = None
if is_Empty(top):
print("栈已经清空了!")
else:
pop_data = top.data
top = top.next
return pop_data
总结部分
class Link_Stack:
def __init__(self, value):
self.data = value
self.next = None
def init(bott):
init_data = [5, 2, 7, 3, 2]
for data in init_data:
new_data = Link_Stack(value=data)
new_data.next = bott
bott = new_data
return bott
def is_Empty(bott):
if bott is None:
return True
else:
return False
def pop():
global top
pop_data = None
if is_Empty(top):
print("栈已经清空了!")
else:
pop_data = top.data
top = top.next
return pop_data
def push(value):
global top
new_data = Link_Stack(value)
new_data.next = top
top = new_data
if __name__ == '__main__':
top = None
top = init(top)
print(pop())
print(pop())
print(pop())
print(pop())
print(pop())
print(pop())
push(22)
print(pop())