使用Python OOP编程模式,实现单向链表(无tail指针)。
时间: 2024-10-20 15:13:24 浏览: 5
在Python中,我们可以使用OOP(Object-Oriented Programming,面向对象编程)的方式来实现单向链表,尤其是当我们要避免使用尾指针时,可以使用头节点(Head Node)的概念。这里是一个简单的例子:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
# 插入数据到链表头部
def insert_at_start(self, data):
new_node = Node(data)
if not self.head:
self.head = new_node
else:
new_node.next = self.head
self.head = new_node
# 在链表中查找指定值并返回该节点的位置,如果没有找到则返回None
def find_index(self, value):
index = 0
current = self.head
while current:
if current.data == value:
return index
index += 1
current = current.next
return None
# 删除指定位置的数据
def delete_at_index(self, index):
if index < 0 or index >= self.size():
raise IndexError("Index out of range")
if index == 0:
self.head = self.head.next
else:
current = self.head
for _ in range(index - 1):
current = current.next
current.next = current.next.next
# 返回链表的长度
def size(self):
count = 0
current = self.head
while current:
count += 1
current = current.next
return count
# 示例用法
my_list = LinkedList()
my_list.insert_at_start(1)
my_list.insert_at_start(2)
print(my_list.find_index(2)) # 输出:0
my_list.delete_at_index(0) # 删除第一个元素
```
在这个例子中,`Node` 类代表链表中的一个节点,包含数据和指向下一个节点的引用。`LinkedList` 类包含了创建、插入、查找和删除操作。
阅读全文