Python で Singly Linked リストをソートする方法を理解するのに少し苦労しています。リンクされたリストを作成してデータをプッシュする方法を理解しましたが、ソートされた形式でプッシュするにはどうすればよいですか (すべてのデータがプッシュされた後にソートするのではありません)、または単にソートする方法はありますか?
目的
ユーザー入力に基づいて、並べ替えられた単方向にリンクされた数字のリストを作成します。プログラム ロジック: 番号を要求し、その番号を並べ替えられた位置のリストに追加し、リストを出力します。数値に -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()
私は本当にここで立ち往生しています。助けてくれてありがとう!