为什么我的链表大小函数不按预期工作?



我使用下面的代码来定义我的链表、节点和一些函数。

class node:
def __init__(self,node_data):
self.__data=node_data
self.__next=None

def get_data(self):
return self.__data

def set_data(self,node_data):
self.__data=node_data

data=property(get_data,set_data)
def get_next(self):
return self.__next

def set_next(self,node_next):
self.__next=node_next
next=property(get_next,set_next)
def __str__(self):
return str(self.__data)
class unordered_list:
def __init__(self):
self.head=None

def is_empty(self):
return self.head==None
def add(self,item):
temp=node(item)
temp.set_next=(self.head)
self.head=temp
def size(self):
current=self.head
count=0
while current is not None:
count=count+1
current=current.next

return count
def search(self,item):

current=self.head
while current is not None:
if current.data==item:
return True
current=current.next

return False

我使用以下代码来设置一个测试列表:

my_list=unordered_list()
my_list.add(31)
my_list.add(77)
my_list.add(17)
my_list.add(93)
my_list.add(26)
my_list.add(54)

但是,当我运行以下命令时,我没有得到正确的输出:-

my_list.size()

输出:

1

预期输出:-

6
谁能告诉我我的错误可能在哪里?

你需要调用set_next,而不是给它赋值。所以试着替换

temp.set_next=self.head

temp.set_next(self.head)

你对add的定义

相关内容

  • 没有找到相关文章

最新更新