[英]__str__ method for Class LinkedList
我在下面定義了LinkedList
類。 我能夠實現除__str__
方法之外的所有其他方法,有人可以告訴我如何定義此方法。 Node
類已經定義好了,我可以使用Node()
、 get_data()
、 set_data()
、 get_next()
和set_next()
class LinkedList:
def __init__(self):
self.head = None
self.count = 0
def is_empty(self):
return self.count == 0
def size(self):
return self.count
def add(self, item):
new_node = Node(item)
new_node.set_next(self.head)
self.head = new_node
self.count += 1
def search(self, item):
current = self.head
while current != None:
if current.get_data() == item:
return True
else:
current = current.get_next()
return False
def remove(self, item):
found = False
current = self.head
previous = None
while current != None and not found:
if current.get_data() == item:
found = True
else:
previous = current
current = current.get_next()
if found:
if previous == None:
self.head = current.get_next()
else:
previous.set_next(current.get_next())
self.count -= 1
else:
raise ValueError("remove(" + str(item) + "). " + str(item) + " is not in list")
def clear(self):
while (self.head != None):
temp = self.head
self.head = self.head.next
temp = None
def __str__(self): #My doubt is here
current = self.head
return "Head --> {}".format(current)
current = current.get_next()
測試:
l_list = LinkedList()
print(l_list)
l_list.add(1)
l_list.add(2)
print(l_list)
預期輸出:
Head --> None
Head --> 2 --> 1
收到的輸出:
Head --> None
Head --> <__main__.Node object at 0x7f39f7d14b80>
測試:
l_list = LinkedList()
l_list.add("hello")
l_list.add("world")
print(l_list)
l_list.clear()
print(l_list)
預期輸出:
Head --> world --> hello
Head --> None
輸出記錄:
Head --> <__main__.Node object at 0x7f39f7d7cf10>
Head --> None
在這里打印節點的對象,為了修復,只需為每個節點調用 get_data 方法,並獲取下一個節點:
def __str__(self): #My doubt is here
current = self.head
s = "Head -->"
while current:
s+=" {} -->".format(current.get_data())
current = current.get_next()
s += " None"
return s
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.