我有想象或解决这个问题,我有这个节点和列表
class node:
def __init__(self, info):
self.info = info
self.next = None
class list:
def __init__(self):
self.__first = None
self.__last = None
我必须创建一个名为indexL(self,info,position)的函数,它将确切的节点放在所需的位置,这就是我现在所拥有的 (我已经创建了一个名为self.length()的方法来给出列表的大小)
def indexL(self, info, position):
longit = self.length()
n = node(info)
p = self.__first
if position == 0:
self.__first = n
else:
if position > 0 and position < longit:
if position == longit-1:
self.__last = n
else:
现在我被困在那里,顺便说一句我无法向节点添加任何方法或使用列表中的其他方法,如果有人想要帮助或任何推荐,我会非常感激
编辑:如果你感到困惑,我在上一次评论中会更清楚:P
答案 0 :(得分:0)
您真的不需要length()
方法......您需要做的就是遍历列表,直到找到位置并更新信息:
def indexL(self, info, position):
if not self.__first:
raise Error("Empty List")
item = self.__first
i = 0
while item:
if i == position:
break
item = item.next
i += 1
else:
raise Error("Position is outside of the size of the list")
item.info = info # Replace info