数据结构之栈

mac2022-06-30  31

栈是一种线性的数据结构,存储以及查找数据时只能访问栈的一端。做个比喻的话,栈就像是一叠盘子,新盘子放到一叠盘子的最上面,去的时候也是从最上面取。最后放上去的盘子最先被取走。栈也因此被称为是后进先出的结构。

栈中至少有一个盘子的时候才可以取出,只有空间还足够的时候才能再加上一个盘子。所以站应该包含以下的操作:

Clear()——清空一个栈IsEmpty()——判断一个栈是否为空Push()——将元素添加到栈的顶部Pop()——弹出栈顶的元素Getdata()——返回栈顶的元素值

如下图所示 栈的python实现

class node: """ 创建链表的节点 包含data储存的数据和next指向下一个节点 """ def __init__(self, data): self.data = data self.next = None class Stack: def __init__(self): """ 删除了初始化的操作 大家可以自己写一下,列表初始化或元素初始化 """ self.head = None self.Num = 0 def Clear(self): #清空栈 self.head = None self.Num = 0 def IsEmpty(self): #判断是否为空 return self.Num == 0 def Push(self, data): #添加元素到栈 if self.head == None: self.head = node(data) else: p = self.head self.head = node(data) self.head.next = p self.Num += 1 def Pop(self): #弹出元素 p = self.head data = p.data if p.next == None: self.head = None else: self.head = p.next self.Num -= 1 return data def Getdata(self): #获取栈顶元素 #不弹出 p = self.head data = p.data return data

欢迎关注公众号 : 数学算法实验室 专注于 算法、数学、机器学习

最新回复(0)