建立单向链表,表长任意;可交互输出单链表中的内容;编写算法计算出自己所建立的单链表的长度并输出;删除自己所建单链表中的第K个节点,并将剩余节点输出;将单链表倒排,输出结果。
时间: 2024-06-11 20:07:03 浏览: 54
以下是Python实现:
# 定义节点类
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
# 定义链表类
class LinkedList:
def __init__(self):
self.head = Node() # 头节点
# 在链表末尾添加节点
def append(self, data):
new_node = Node(data)
cur = self.head
while cur.next != None:
cur = cur.next
cur.next = new_node
# 输出链表
def output(self):
cur = self.head
while cur.next != None:
cur = cur.next
print(cur.data, end=' ')
print()
# 计算链表长度
def length(self):
count = 0
cur = self.head
while cur.next != None:
cur = cur.next
count += 1
return count
# 删除第k个节点并输出剩余节点
def delete(self, k):
cur = self.head
count = 0
while cur.next != None:
pre = cur
cur = cur.next
count += 1
if count == k:
pre.next = cur.next
break
self.output()
# 将链表倒排
def reverse(self):
prev = None
cur = self.head.next
while cur != None:
next_node = cur.next
cur.next = prev
prev = cur
cur = next_node
self.head.next = prev
# 测试
linked_list = LinkedList()
linked_list.append(1)
linked_list.append(2)
linked_list.append(3)
linked_list.append(4)
linked_list.append(5)
linked_list.output() # 输出:1 2 3 4 5
print(linked_list.length()) # 输出:5
linked_list.delete(3) # 输出:1 2 4 5
linked_list.reverse()
linked_list.output() # 输出:5 4 2 1