好的,以下是使用 Python 实现一些常见数据结构的示例代码:
- 链表:
```python
class Node:
def init(self, data=None):self.data = data self.next = None
class LinkedList:
def init(self):
self.head = None
def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
current = self.head
while current.next:
current = current.next
current.next = new_node
def print_list(self):
elements = []
current = self.head
while current:
elements.append(current.data)
current = current.next
print(elements)
创建链表对象
linked_list = LinkedList()
向链表中添加元素
linked_list.append(10)
linked_list.append(20)
linked_list.append(30)
打印链表中的元素
linked_list.print_list()
在上述示例中,定义了一个`Node`类来表示链表中的节点,每个节点包含数据和指向下一个节点的指针。然后,定义了一个`LinkedList`类来管理链表。`append`方法用于向链表中添加元素,`print_list`方法用于打印链表中的元素。
2. 栈:
```python
class Stack:
def __init__(self):
self.stack = []
def is_empty(self):
return len(self.stack) == 0
def push(self, element):
self.stack.append(element)
def pop(self):
if not self.is_empty():
return self.stack.pop()
else:
print("栈已空,无法弹出元素")
def peek(self):
if not self.is_empty():
return self.stack[-1]
else:
print("栈为空,无法查看顶部元素")
# 创建栈对象
stack = Stack()
# 入栈操作
stack.push(5)
stack.push(6)
stack.push(7)
# 打印栈顶元素
print("栈顶元素:", stack.peek())
# 出栈操作
popped_element = stack.pop()
print("弹出的元素:", popped_element)
# 检查栈是否为空
if stack.is_empty():
print("栈为空")
else:
print("栈不为空")
在这个示例中,定义了一个Stack
类来表示栈数据结构。is_empty
方法用于检查栈是否为空,push
方法用于入栈操作,pop
方法用于出栈操作,peek
方法用于查看栈顶元素。
队列:
```python
class Queue:
def init(self):self.queue = []
def is_empty(self):
return len(self.queue) == 0
def enqueue(self, element):
self.queue.append(element)
def dequeue(self):
if not self.is_empty(): return self.queue.pop(0) else: print("队列为空,无法出队")
def peek(self):
if not self.is_empty(): return self.queue[0] else: print("队列为空,无法查看头部元素")
创建队列对象
queue = Queue()
入队操作
queue.enqueue(5)
queue.enqueue(6)
queue.enqueue(7)
打印队头元素
print("队头元素:", queue.peek())
出队操作
dequeued_element = queue.dequeue()
print("出队的元素:", dequeued_element)
检查队列是否为空
if queue.is_empty():
print("队列空")
else:
print("队列不为空")`` 在这个示例中,定义了一个
Queue类来表示队列数据结构。
is_empty方法用于检查队列是否为空,
enqueue方法用于入队操作,
dequeue方法用于出队操作,
peek`方法用于查看队头元素。
这些示例只是简单地实现了这些数据结构的基本操作,实际应用中可能需要根据具体需求进行更多的功能扩展和错误处理。希望这些示例对你有所帮助,如果你还有其他问题或需要进一步的解释,请随时提问😄