1

だから、私はここで、そして私が知っている人々から助けを得ることによって、すでにいくつかの問題を解決しました. 私の問題の根本は、Noneをラップする方法がわからないため、属性がない、または呼び出し可能ではないというこれらのエラーが発生し続けないことです。

このリンクされたリストの場合、本当に必要なのは挿入と印刷リストだけです。印刷リストは単純で、問題を引き起こしていないため、含めませんでした。

エラーは Linked_List の下、insert の下、elif の下にあります。次のようにコメントされています: #<----ERROR

コードは次のとおりです。

class Node:
def __init__(self, word):
    self.data = word
    self.next = None
def nextNode(self):
    if self.next is not None:
        return self.next
    else:
        return None
def getData(self):
    return self.data
def setNext(self, node):
    self.next = node
def hasNext(self):
    if self.next == None:
        return False
    else:
        return True


class Linked_List:
def __init__(self):
    self.head = Node(None)
    self.isempty = True
def insert(self, word):
    newNode = Node(word)
    prev = self.head.nextNode()
    current = self.head.nextNode()
    nextFound = False #the next would be the current when it is less than node
    #Look for position to insert:

    #When empty
    if self.isempty == True:
        self.isempty = False
        self.head = newNode
    #When has more than one
    elif self.head.hasNext():
        while nextFound == False:
            if current.getData() > newNode.getData():
                prev = current
                current = curent.nextNode()
            else:
                nextFound = True
        #Insert
        prev.next().setNext(newNode) # <-------ERROR -----HERE~~
        newNode.setNext(current)
    else:
        #When only has one node not empty
        if self.head.getData() > newNode.getData():
            self.head.setNext(newNode)
        else:
            newNode.setNext(self.head)
            self.head = newNode

挿入:

lList.insert(string)

ここで解決:

class Linked_List:
def __init__(self):
    self.head = Node(None)
    self.isempty = True
def insert(self, word):
    newNode = Node(word)
    prev = self.head.nextNode()
    current = self.head.nextNode()
    nextFound = False #the next would be the current when it is less than node
    #Look for position to insert:

    #When empty
    if self.isempty == True:
        self.isempty = False
        self.head = newNode
    #When has more than one
    elif self.head.hasNext():
        while nextFound == False and current != None:
            if current.getData() > newNode.getData():
                prev = current
                if current.hasNext():
                    current = current.nextNode()
                else:
                    current = None
            else:
                nextFound = True
        #Insert
        prev.setNext(newNode)
        newNode.setNext(current)
    else:
        #When only has one node not empty
        if self.head.getData() > newNode.getData():
            self.head.setNext(newNode)
        else:
            newNode.setNext(self.head)
            self.head = newNode
4

1 に答える 1