我在弄清楚如何在 Python 中对单链表进行排序时遇到了一些麻烦。我已经想出了如何创建一个链接列表并将数据推送到它上面,但是我如何以排序格式推送它(在所有数据都推送到它之后不排序)或者只是以任何方式对其进行排序?
客观的
根据用户输入创建一个排序的单链数字列表。程序逻辑:请求一个数字,将该数字添加到排序位置的列表中,打印列表。重复直到他们输入 -1 作为数字。
当前代码
#!/usr/bin/env python
class node:
def __init__(self):
self.data = None # contains the data
self.next = None # contains the reference to the next node
class linked_list:
def __init__(self):
self.cur_node = None
def add_node(self, data):
new_node = node() # create a new node
new_node.data = data
new_node.next = self.cur_node # link the new node to the 'previous' node.
self.cur_node = new_node # set the current node to the new one.
def list_print(self):
node = self.cur_node # cant point to ll!
while node:
print(node.data)
node = node.next
def main():
ll = linked_list()
num=int(input("Enter a num to push onto the list, -1 to stop: "))
while num!=-1:
data=num
ll.add_node(data)
num=int(input("Enter a num to push onto the list, -1 to stop: "))
print("\n")
ll.list_print()
main()
我真的被困在这里了。预先感谢您的任何帮助!