实现一个链栈及基本功能
时间: 2023-06-23 21:09:59 浏览: 40
链栈是一种基于链表实现的栈,其基本功能包括入栈、出栈、查看栈顶元素、判断栈是否为空等。下面是一个基于Python语言实现的链栈及其基本功能:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedStack:
def __init__(self):
self.top = None # 栈顶指针
def is_empty(self):
return self.top is None # 判断栈是否为空
def push(self, data):
new_node = Node(data)
new_node.next = self.top
self.top = new_node # 入栈操作
def pop(self):
if self.is_empty():
print("Stack is empty!")
return None
data = self.top.data
self.top = self.top.next
return data # 出栈操作
def peek(self):
if self.is_empty():
print("Stack is empty!")
return None
return self.top.data # 查看栈顶元素
def print_stack(self):
if self.is_empty():
print("Stack is empty!")
return
node = self.top
while node:
print(node.data, end=" -> ")
node = node.next # 打印栈中所有元素
print("NULL")
```
可以通过以下代码进行测试:
```python
stack = LinkedStack()
print(stack.is_empty()) # True
stack.push(1)
stack.push(2)
stack.push(3)
print(stack.peek()) # 3
stack.print_stack() # 3 -> 2 -> 1 -> NULL
stack.pop()
print(stack.peek()) # 2
stack.print_stack() # 2 -> 1 -> NULL
```
以上代码实现了链栈的入栈、出栈、查看栈顶元素、判断栈是否为空等基本功能。