2017-04-16 66 views
0

所需位置联动的名单上有这类问题的想象或解决这一点,我有这个节点列表插入特定节点上的Python

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.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

是列表的全部代码,对不起,我会编辑,位置=指数 – Esteban

+0

是什么'info'和在这种情况下''位置? – salparadise

+0

什么是'list'类用于? – salparadise

回答

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 
+0

我也'info.next = item.next'在最后的任务之前;没有它,你完全替换尾部而不是插入。 – 9000

+0

我没有插入节点...只是替换节点的数据,所以你不需要'item.next',如果你需要删除节点并插入一个新节点,那么你需要保留pr eclipse节点并处理各种特殊情况(开始,结束等) – AChampion

+0

是的,它是_replacing_节点,而标题读取“Python中所需的位置链接列表中的_Insert_特定节点”。 – 9000