我正在尝试使用 OOP 和私有变量来实现一个链表。但是,'str' object has no attribute 'get_data'当我调用类的display方法时,我得到了LinkedList。另外,我觉得add方法也不对。
当我打印self.__head和self.__tail输入时add(),代码永远不会进入 else 部分,它输出:
Sugar Sugar
Milk Milk
Tea Tea
Biscuit Biscuit
下面是我的代码:
class LinkedList:
def __init__(self):
self.__head=None
self.__tail=None
def get_head(self):
return self.__head
def get_tail(self):
return self.__tail
def add(self,data): # Skeptical about it
if self.__tail is None:
self.__head=Node(data).get_data()
self.__tail = self.__head
print(self.__head,self.__tail)
else:
b=Node(data)
self.__tail= b.get_data()
self.__head = self.__tail
b.set_next(self.__tail)
self.__tail = b.get_next()
print(self.__head,self.__tail)
def display(self): # Gives the error
temp = self.__head
msg = []
c = Node(temp)
while (temp is not None):
print(temp.get_data())
msg.append(str(temp.get_data()))
temp = temp.get_next()
msg = ''.join(msg)
print(msg)
class Node:
def __init__(self,data):
self.__data=data
self.__next=None
def get_data(self):
return self.__data
def set_data(self,data):
self.__data=data
def get_next(self):
return self.__next
def set_next(self,next_node):
self.__next=next_node
list1=LinkedList()
list1.add("Sugar")
#print(list1.get_head())
#print("Element added successfully")
list1.add("Milk")
list1.add("Tea")
list1.add("Biscuits")
list1.display()
守着一只汪
潇湘沐
长风秋雁
相关分类