2014-10-21 78 views
-1

在这里,在值插入一个链接是这样一个问题:蟒蛇:给定索引

def insert(link, value, index): 
    """Insert a value into a Link at the given index. 

    >>> link = Link(1, Link(2, Link(3))) 
    >>> insert(link, 9001, 0) 
    >>> link 
    Link(9001, Link(1, Link(2, Link(3)))) 
    >>> insert(link, 100, 2) 
    >>> link 
    Link(9001, Link(1, Link(100, Link(2, Link(3))))) 
    >>> insert(link, 4, 5) 
    Index out of bounds 
    """ 
    "*** YOUR CODE HERE ***" 

我写下这不能很好地工作是:

i = 0 
link_new = link(link.first) 
while link.rest != Link.empty and i < index: 
    link_new = link.rest 
    i += 1 
    if i == index: 
     link_new.first = value 
     link_new.rest = link.first, link.rest 
    else: 
     print ("Index out of bounds") 

请帮我要解决这个问题!

+0

你能解释一下多一点你有什么目标,这个程序应该如何表现? – mpm 2014-10-21 23:22:50

+0

Link对象的外观如何? – user3885927 2014-10-21 23:24:33

回答

0

你可以使用递归此

def insert(link, value, index): 
    if index == 0: 
     link.first = value 

    elif link.rest != Link.empty: 
      insert(link.rest, value, index-1) 

    else  
     print ("Index out of bounds")