本关任务:编写程序实现节点类 Node,实现链表的基本操作。
时间: 2023-09-29 14:07:59 浏览: 66
好的,让我们开始吧。
首先,我们需要定义一个节点类 Node,它应该包括两个属性:一个是存储数据的变量 data,另一个是指向下一个节点的指针 next。同时,我们需要实现几个基本的链表操作,包括插入节点、删除节点、查找节点和遍历链表。
下面是一个示例实现:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def insert(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
current_node = self.head
while current_node.next is not None:
current_node = current_node.next
current_node.next = new_node
def delete(self, data):
if self.head is None:
return
if self.head.data == data:
self.head = self.head.next
else:
current_node = self.head
while current_node.next is not None:
if current_node.next.data == data:
current_node.next = current_node.next.next
return
current_node = current_node.next
def find(self, data):
if self.head is None:
return None
current_node = self.head
while current_node is not None:
if current_node.data == data:
return current_node
current_node = current_node.next
return None
def traverse(self):
current_node = self.head
while current_node is not None:
print(current_node.data)
current_node = current_node.next
```
以上代码实现了一个简单的单向链表,其中 Node 类表示链表中的节点,LinkedList 类表示整个链表。在 Node 类中,我们定义了 data 和 next 两个属性;在 LinkedList 类中,我们定义了头节点 head,并实现了插入节点、删除节点、查找节点和遍历链表等基本操作。
我们可以使用以下代码测试链表的功能:
```python
linked_list = LinkedList()
linked_list.insert(1)
linked_list.insert(2)
linked_list.insert(3)
linked_list.traverse() # 输出 1 2 3
linked_list.delete(2)
linked_list.traverse() # 输出 1 3
node = linked_list.find(3)
print(node.data) # 输出 3
```
希望这个示例能够帮助你理解链表的基本操作。