写出代码,创建一个由6个结点的单向链表,实现增加、删除、查找、移动、显示结点的基本功能。
时间: 2024-05-16 12:17:34 浏览: 10
以下是 Python 语言实现单向链表基本功能的代码:
```python
# 定义节点类
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
# 定义单向链表类
class LinkedList:
def __init__(self):
self.head = None
self.size = 0
# 在链表末尾添加节点
def add(self, val):
node = ListNode(val)
if not self.head:
self.head = node
else:
cur = self.head
while cur.next:
cur = cur.next
cur.next = node
self.size += 1
# 在指定位置插入节点
def insert(self, index, val):
if index < 0 or index > self.size:
return
node = ListNode(val)
if index == 0:
node.next = self.head
self.head = node
else:
cur = self.head
for i in range(index-1):
cur = cur.next
node.next = cur.next
cur.next = node
self.size += 1
# 删除指定位置的节点
def delete(self, index):
if index < 0 or index >= self.size:
return
if index == 0:
self.head = self.head.next
else:
cur = self.head
for i in range(index-1):
cur = cur.next
cur.next = cur.next.next
self.size -= 1
# 查找指定节点的位置
def find(self, val):
cur = self.head
index = 0
while cur:
if cur.val == val:
return index
cur = cur.next
index += 1
return -1
# 将指定位置的节点移动到链表末尾
def move(self, index):
if index < 0 or index >= self.size:
return
if index == 0:
node = self.head
self.head = node.next
else:
cur = self.head
for i in range(index-1):
cur = cur.next
node = cur.next
cur.next = node.next
self.add(node.val)
# 显示链表所有节点的值
def display(self):
cur = self.head
while cur:
print(cur.val, end=' ')
cur = cur.next
print()
```
接下来可以创建一个 6 个结点的单向链表,并测试上述基本功能:
```python
# 创建链表
ll = LinkedList()
ll.add(1)
ll.add(2)
ll.add(3)
ll.add(4)
ll.add(5)
ll.add(6)
# 显示链表
ll.display() # 输出:1 2 3 4 5 6
# 在指定位置插入节点
ll.insert(2, 7)
ll.display() # 输出:1 2 7 3 4 5 6
# 删除指定位置的节点
ll.delete(3)
ll.display() # 输出:1 2 7 4 5 6
# 查找指定节点的位置
print(ll.find(4)) # 输出:3
# 将指定位置的节点移动到链表末尾
ll.move(1)
ll.display() # 输出:1 7 4 5 6 2
```