编写一个程序,在自定义函数中完成下列功能并在主函数中进行测试: (1) 建立一个空的单链表,并初始化; (2)用尾插法往链表里插入n个数据(数据类型及个数需自己定义),然后打印出来验证。 (3)删除单链表中元素值最小的结点(假设这样的结点唯一),然后打印出来验证
时间: 2024-10-08 11:20:00 浏览: 66
为了帮助您完成这个任务,我将分步骤为您展示如何编写一个简单的Python程序,使用类定义链表结构,并实现尾插法添加节点、查找最小值节点以及删除操作。这里我们假设数据类型是整数(int),并且链表节点包含数据值和下一个节点指针。
首先,我们创建一个链表节点类:
```python
class ListNode:
def __init__(self, data=0):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
# 尾插法插入节点
def append(self, data):
if not self.head:
self.head = ListNode(data)
else:
current = self.head
while current.next:
current = current.next
current.next = ListNode(data)
# 打印链表
def print_list(self):
elements = []
current = self.head
while current:
elements.append(current.data)
current = current.next
print(elements)
# 删除最小值节点
def delete_min(self):
if not self.head or not self.head.next:
return
min_val = self.head.data
min_node = self.head
current = self.head.next
while current:
if current.data < min_val:
min_val = current.data
min_node = current
current = current.next
if min_node != self.head:
min_node.data = min_node.next.data
min_node.next = min_node.next.next
else:
self.head = min_node.next
```
现在,让我们在`main`函数中测试上述链表操作:
```python
def main():
# (1) 创建空链表并初始化
ll = LinkedList()
# (2) 插入n个数据(这里以5个数据为例)
n = 5
for i in range(n):
ll.append(i + 1)
# 打印插入后的链表
ll.print_list()
print("\n")
# (3) 删除最小值节点并打印
ll.delete_min()
ll.print_list()
if __name__ == "__main__":
main()
```
在这个例子中,你需要根据需要调整`n`的值以及数据类型。运行这个`main`函数,你会看到链表的操作结果。
阅读全文