使用Python OOP编程模式,实现单向链表(无tail指针)。
时间: 2024-10-21 17:04:04 浏览: 29
在Python中,我们可以使用面向对象编程(OOP)创建一个单向链表结构,每个节点包含数据以及指向下一个节点的引用。由于题目要求无`tail`指针,我们将只维护一个`next`属性。首先,定义一个基础的`Node`类作为链表节点:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
def __str__(self):
return f"Node({self.data})"
# 链表类,表示链表本身
class LinkedList:
def __init__(self):
self.head = None
# 插入节点到链表头部
def insert_at_start(self, data):
new_node = Node(data)
if self.head is not None:
new_node.next = self.head
self.head = new_node
# 插入节点到链表尾部
def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
return
current = self.head
while current.next:
current = current.next
current.next = new_node
# 删除节点(这里简化处理,仅删除头节点)
def remove_head(self):
if self.head is not None:
self.head = self.head.next
# 打印链表
def display(self):
elements = []
current = self.head
while current:
elements.append(current.data)
current = current.next
print(" -> ".join(map(str, elements)))
# 示例
linked_list = LinkedList()
linked_list.insert_at_start(1)
linked_list.insert_at_start(0)
linked_list.append(2)
linked_list.display() # 输出: Node(0) -> Node(1) -> Node(2)
linked_list.remove_head()
linked_list.display()
阅读全文