2014-11-24 1 views
0

Я играю со связанными списками в первый раз, и я не могу понять, почему мой метод добавления не работает.Python: Работа с LinkedLists, не могу добавить

Вот мой код:

class Node(object): 

     def __init__(self, datain): 
      self.data = datain 
      self.next = None 

     def getData(self): 
      return self.data 

     def getNext(self): 
      return self.next 

     def setData(self, newdata): 
      self.data = newdata 

     def setNext(self, newnext): 
      self.data = newnext 




    class UnorderedList(object): # also known as linked list 

     def __init__(self): 
      self.head = None 

     def isEmpty(self): 
      return self.head == None 

     def add(self, item): 
      temp = Node(item) 
      temp.setNext(self.head) 
      self.head = temp 

     def size(self): 
      current = self.head 
      count = 0 
      while current != None: 
       count = count + 1 
       current = current.getNext() 
      return count 

     def search(self, item): 
      current = self.head 
      found = False 
      while current != None and not found: 
       if current.getData == item: 
        found = True 
       else: 
        current = current.getNext() 
      return found 

mylist = UnorderedList() 

print mylist.size() 
mylist.add(6) 
print mylist.size() 
mylist.add(9) 
print mylist.size() 

Но я не получаю желаемый результат, это то, что мой терминал отображения:

метода
$ python linkedlist.py 
0 
1 
1 

Надстройки, кажется, не будет работать, но Я не могу понять, почему. Для справки, я использую this, чтобы узнать.

ответ

1

Заменить:

def setNext(self, newnext): 
     self.data = newnext 

с:

def setNext(self, newnext): 
     self.next = newnext 
+0

Ого, спасибо за указание на это. – ApathyBear

Смежные вопросы