二重リンクリストの理解と実装に問題があります。私は、リンクされたリストの概念の大部分を理解することができます。これまでのコードは(Pythonで)二重リンクリストをソートしました
*これは単なる学問的な演習です。私は通常listとdictを使います。ラインprev_node = cur_node
コールDoublyNode(element, cur_node, prev_node)
に先行しているので
class DoublyNode(object):
"""A node of the SortedDoublyLL object.
DoublyNode(item, next=None, previous=None) -> a new DoublyNode with data as
its data, and next and previous as its neighbors."""
def __init__(self, data, next = None, previous = None):
"""Make a new DoublyNode from item, pointing to next and previous."""
self.data = data
self.next = next
self.previous = previous
class SortedDoublyLL(object):
"""A Sorted Doubly Linked List.
SortedDoublyLL() -> new SortedDoublyLL list that is empty
SortedDoublyLL(sequence) -> a SortedDoublyLL initialized from sequence's
items.
"""
def __init__(self, sequence = []):
"""Make a new SortedDoublyLL from the elements of sequence."""
if len(sequence) == 0:
self.head = None
self.tail = None
else:
cur_node = None
prev_node = None
sequence.sort()
sequence.reverse()
for element in sequence:
prev_node = cur_node
cur_node = DoublyNode(element, cur_node, prev_node)
self.head = cur_node
self.tail = DoublyNode(sequence[0])
リンクリストを最初に1つの要素で設定し、次に挿入アルゴリズムを使用して他の要素を挿入するための適切な場所を見つける方がよいと思います。最初は単純なままにしておきたい場合。 –
あなたの質問は何ですか? –