Python /链表/动态/重载

时间:2012-02-25 10:46:26

标签: python list dynamic hyperlink constructor-overloading

我一年没有编程,所以我有点生疏了。我真的想要合并一个链接列表,但我无法记住代码是如何工作的,并且必须在Python中实现它并没有帮助。

到目前为止我只设置了Node Class。显然,我不能使用重载的构造函数,这很烦人......

基本上我想写一个程序,提示用户输入X个桶。每个铲斗将有一定数量的不同颜色的球。用户将指定每种颜色的球数。

我欢迎任何帮助!

class Node:
    def __init__(self, bucketNumber ,colorONE, colorTWO,
        colorTHREE, colorFOUR, colorFIVE ):
        self.bucket = bucketNumber # index
        self.color1 = colorONE # quantity
        self.color2 = colorTWO # quantity
        self.color3 = colorTHREE # quantity
        self.color4 = colorFOUR # quantity
        self.color5 = colorFIVE # quantity


def printN(bucketNum):
    for i in range(0,bucketNum):
        print(nodes[i].bucket, nodes[i].color1, nodes[i].color2, nodes[i].color3, nodes[i].color4, nodes[i].color5)


colors = []
nodes = []
count = []

bucketNum = int(raw_input("The are 2-5 buckets with 2-5 ball colors. Enter number of Buckets:"))
colorNum = int(raw_input("Enter number of Colors:"))
for i in range(0,colorNum):
    colors.append(raw_input("Enter color: " + str(i+1) ))




for i in range(0,bucketNum):
    for j in range(0,colorNum):

        count.append((raw_input("How many "+ colors[j] +" balls in bucket " + str(i+1))))
    nodes.append( Node(i+1, count[0], count[1], count[2], count[3], count[4]) )
    del count[ 0:len(count) ]




for i in range(0,colorNum):
    print colors[i],
print " "
printN(bucketNum)

1 个答案:

答案 0 :(得分:0)

您似乎没有问题,但请注意,可能不需要使用链接列表,除非您的列表有很多插入并且很大(因为python list内存分配;并且我不会认为这是一个问题,直到它出现在分析中),或者如果你在列表的末尾有很多插入和删除。

在这种情况下,python提供collections.deque这是一个链接序列。