如何用class封装链表
时间: 2023-07-17 17:03:38 浏览: 43
你可以使用类来封装链表,下面是一个示例:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def add_node(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 display(self):
current = self.head
while current:
print(current.data, end=" ")
current = current.next
print()
```
在这个例子中,我们定义了两个类:`Node`和`LinkedList`。`Node`类表示链表中的节点,`LinkedList`类表示整个链表。
`Node`类有两个属性:`data`表示节点的值,`next`表示指向下一个节点的指针。
`LinkedList`类有一个属性:`head`表示链表的头节点。
`LinkedList`类还有两个方法:
- `add_node()`方法用于向链表中添加新节点。如果链表为空,则将新节点设置为头节点;否则,遍历链表直到最后一个节点,然后将新节点添加到最后一个节点的后面。
- `display()`方法用于打印链表中的所有节点的值。
你可以使用这个封装的链表类来创建链表并执行相应的操作。例如:
```python
# 创建一个链表对象
my_list = LinkedList()
# 向链表中添加节点
my_list.add_node(1)
my_list.add_node(2)
my_list.add_node(3)
# 打印链表中的节点
my_list.display()
```
输出结果将会是:`1 2 3`,表示链表中的节点值为1、2、3。