编写一个节点类和单链表类,包含单链表的定义和基本操作,并 完成以下测试(假定第一个节点所在位置为第0个位置)1.初始化一个单链表L 2.判断L是否为空 3.将值为33、24、231、3、11的节点依次存入L中 4.获取L的长度 5.将值为11的节点插入至L的第3个位置 6.在L的首端插入值为25的节点 7.删除L中第3个位置的元素 8.遍历L中所有节点
时间: 2023-05-10 17:56:03 浏览: 174
以下是节点类和单链表类的代码实现:
```python
class Node:
def __init__(self, data=None, next=None):
self.data = data
self.next = next
class LinkedList:
def __init__(self):
self.head = None
def is_empty(self):
return self.head is None
def add(self, data):
new_node = Node(data)
new_node.next = self.head
self.head = new_node
def length(self):
count = 0
current = self.head
while current is not None:
count += 1
current = current.next
return count
def insert(self, data, position):
if position == 0:
self.add(data)
else:
new_node = Node(data)
current = self.head
for i in range(position - 1):
current = current.next
new_node.next = current.next
current.next = new_node
def remove(self, position):
if position == 0:
self.head = self.head.next
else:
current = self.head
for i in range(position - 1):
current = current.next
current.next = current.next.next
def traverse(self):
current = self.head
while current is not None:
print(current.data)
current = current.next
```
接下来是测试代码:
```python
# 1.初始化一个单链表L
L = LinkedList()
# 2.判断L是否为空
print(L.is_empty()) # True
# 3.将值为33、24、231、3、11的节点依次存入L中
L.add(11)
L.add(3)
L.add(231)
L.add(24)
L.add(33)
# 4.获取L的长度
print(L.length()) # 5
# 5.将值为11的节点插入至L的第3个位置
L.insert(11, 3)
# 6.在L的首端插入值为25的节点
L.add(25)
# 7.删除L中第3个位置的元素
L.remove(3)
# 8.遍历L中所有节点
L.traverse()
```
输出结果为:
```
25
33
24
11
231
3
```
阅读全文