Python函数实现栈结构及其基本操作
发布时间:2023-06-12 07:53:22
栈结构是一种先进后出(LIFO)的数据结构,可以用函数来实现。在Python中,可以使用列表或者链表来实现栈结构。
列表实现栈结构:
首先定义一个空列表来表示栈,然后定义以下操作:
1. push(item):将元素压入栈中
2. pop():从栈中弹出(删除)并返回栈顶元素
3. top():返回栈顶元素,但不弹出
4. is_empty():判断栈是否为空
5. size():返回栈的大小
下面是实现栈结构的代码:
class Stack:
def __init__(self):
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def top(self):
return self.items[-1]
def is_empty(self):
return self.items == []
def size(self):
return len(self.items)
使用链表来实现栈结构:
链表的头部表示栈顶元素,每个节点包含下一个节点的指针和存储的元素。定义以下操作:
1. push(item):将元素压入栈中
2. pop():从栈中弹出(删除)并返回栈顶元素
3. top():返回栈顶元素,但不弹出
4. is_empty(): 判断栈是否为空
5. size(): 返回栈的大小
下面是使用链表实现栈的代码:
class Node:
def __init__(self, value):
self.value = value
self.next = None
class Stack:
def __init__(self):
self.top = None
def push(self, item):
new_node = Node(item)
new_node.next = self.top
self.top = new_node
def pop(self):
if self.is_empty():
return None
else:
popped_node = self.top
self.top = self.top.next
popped_node.next = None
return popped_node.value
def top(self):
if self.is_empty():
return None
else:
return self.top.value
def is_empty(self):
return self.top == None
def size(self):
count = 0
current = self.top
while current:
count += 1
current = current.next
return count
以上是Python函数实现栈结构及其基本操作的思路,通过编写相应的代码可以实现具体的栈结构,提高程序开发效率和数据结构操作能力。
