0
這個python程序是一個有序鏈接列表,用於跟蹤一行中的名稱。我正在爲joinFriend函數掙扎。我需要在「第一人」之後的位置添加「人物第二」。如果第一個不在線,我必須提供一個錯誤消息。誰能幫忙?我沒有做那個偉大的類:'(在有序鏈接列表中插入一個元素
class PersonList(object):
#constructor initializes both instance variables
def __init__(self, name):
self.name = name
self.next = None
def getName(self):
#returns the name of the person
return self.name
def getNext(self):
#returns a PersonList object with the next person in line
return self.next
def setName(self, newname):
self.name = newname
def setNext(self, newnext):
self.next = newnext
#Line class
class Line(object):
def __init__(self):
self.head = None
def isEmpty(self):
#constructor initializes an empty linked list
return self.head == None
def __str__(self):
#prints the people currently in line, in order,
#with a number indicating their position
current = self.head
string = ''
count = 0
while current != None:
count = count + 1
string += str(count) + " " + current.getName() + "\n"
current = current.getNext()
return string
def add(self,name):
#adds a person to the END of the line
current = self.head
temp = PersonList(name)
if current == None:
self.head = temp
else:
while current.getNext() != None:
current = current.getNext()
current.setNext(temp)
def remove(self, name):
#removes a person from the line
current = self.head
previous = None
found = False
while not found:
if current.getName() == name:
found = True
else:
previous = current
current = current.getNext()
if previous == None:
self.head = current.getNext()
else:
previous.setNext(current.getNext())
def joinFriend(first, second):
current = self.head
previous = None
found = False
while not found:
if current.getName() == first:
found = True
else:
previous = current
current = current.getNext()
second = PersonList(name)
if previous == None:
temp.setNext(self.head)
self.head = temp
else:
temp.setNext(current)
previous.setNext(second)
def main():
ln = Line()
ln.add("John")
ln.add("Mary")
ln.add("Alec")
ln.add("Celia")
ln.remove("Mary")
ln.joinFriend("John", "Mike")
ln.joinFriend("Celia", "Jim")
print(ln)
main()
你的預期輸出是什麼? – 2014-10-07 02:36:28
相關:[Pyth在鏈接列表O(1)插入/刪除](http://stackoverflow.com/q/2154946/608639)。 – jww 2014-10-07 03:46:19