使用数据结构编写一个程序,在自定义函数中完成下列功能并在主函数中进行测试:(1) 建立一个空的单链表, 并初始化;(2) 用尾插法往链表里插入n个数据(数据类型及个数需自己定义),然后打印出来验证。(3) 删除单链表中元素值最大的结点(假设这样的结点唯一),然后打印出来验证。
时间: 2024-09-27 10:12:22 浏览: 50
SQL Function 自定义函数详解
5星 · 资源好评率100%
为了实现这个功能,我们可以使用Python语言以及其内置的数据结构`ListNode`来构建单链表。首先,我们需要定义一个链表节点类:
```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_max(self):
if not self.head or not self.head.next:
return
max_value = self.head.data
max_node = self.head
current = self.head.next
while current:
if current.data > max_value:
max_value = current.data
max_node = current
current = current.next
max_node.next = max_node.next.next if max_node.next else None
```
接下来,在主函数中测试这个链表操作:
```python
def main():
# 创建链表实例
linked_list = LinkedList()
# 插入n个数据 (这里以5个随机整数为例)
n = 5
for i in range(n):
linked_list.append(i)
print("原始链表:")
linked_list.print_list()
# 删除最大节点并打印
linked_list.delete_max()
print(f"删除最大节点后的链表:")
linked_list.print_list()
if __name__ == "__main__":
main()
```
在这个示例中,我们首先创建了一个空链表,然后通过循环向其中添加了n个数据,接着删除最大值节点,并最后打印出链表的内容以进行验证。
阅读全文