编写在非递减有序链表中插入一个元素(整型),使链表元素仍有序的函数(必须采用函数实现,否则不算成绩),并利用该函数建立一个非递减有序单向链表,之后输出这个有序的单链表。
输入格式:
1 6 4 3 5 8 7 9 0
输出格式:
1 3 4 5 6 7 8 9
输入样例:
在这里给出一组输入。例如:
5 10 -1 -6 8 1 20 0
输出样例:
在这里给出相应的输出。例如:
-6 -1 1 5 8 10 20
# 定义链表节点类
class Node:def __init__(self, data=None):self.data = dataself.next = None# 定义单向链表类
class LinkedList:def __init__(self):self.head = Node() # 初始化带头结点的单向链表# 有序插入节点def insert(self, data):new_node = Node(data)cur = self.head# 找到插入位置: cur.next为第一个大于data的节点while cur.next and cur.next.data < data:cur = cur.next# 插入新节点new_node.next = cur.nextcur.next = new_node# 遍历链表并打印元素def display(self):cur = self.head.next # 跳过头结点while cur:print(cur.data, end=" ")cur = cur.nextprint()# 主程序
def main():linked_list = LinkedList() # 初始化带头结点的单向链表# 获取用户输入user_input = input().split()# 将输入的数字有序插入链表,遇到0结束for num in user_input:num = int(num)if num == 0:breaklinked_list.insert(num)# 显示有序的链表linked_list.display()return 0# 调用主程序
main()