列表考慮下面的類定義:安排與名
class Frob(object):
def __init__(self, name):
self.name = name
self.before = None
self.after = None
def setBefore(self, before):
self.before = before
def setAfter(self, after):
self.after = after
def getBefore(self):
return self.before
def getAfter(self):
return self.after
def myName(self):
return self.name
一個FROB是具有名稱的對象,並且兩個連接或鏈接:一個「前」和鏈接「後,」那些意圖指向其他對象的實例。
我們可以使用Frobs形成一個稱爲雙向鏈表的數據結構。在一個雙向鏈表中,每個元素都有這樣的屬性,如果元素A具有到元素B的「之前」鏈接,則元素B具有到元素A的「之後」鏈接。我們希望創建一個雙向鏈接的Frob實例集合,在特定Frob的名稱前面按字母順序排列的名稱的所有Frobs按照「before」鏈接排序,並且所有具有特定Frob名稱後按字母順序排列的名稱的Frobs將沿着「after」鏈接排序。
請注意,如果一個Frob插入的名稱與預先存在的Frob相同,則應在最終的數據結構中插入兩個名稱(兩個相同Frobs的確切順序無關緊要)。
爲將創建一個有序的雙向鏈表的插入函數提供一個定義。該函數在類Frob之外定義,並且有兩個參數:當前是雙向鏈表的一部分的Frob和新的Frob。新的Frob最初不會有任何「之前」或「之後」鏈接到其他Frobs。該函數應該改變列表以將新的Frob放置在正確的位置,由此產生的雙鏈表具有適當的「之前」和「之後」鏈接。完成以下功能定義:
這是我試圖編寫的代碼,但它是錯誤的。請幫我完成代碼。我一直堅持了很長時間。
def insert(atMe, newFrob):
"""
atMe: a Frob that is part of a doubly linked list
newFrob: a Frob with no links
This procedure appropriately inserts newFrob into the linked list that atMe is a part of.
"""
# My Code
nodes = []
if atMe in nodes:
nodes.append(newFrob)
nodes.sort()
else:
nodes.append(atMe)
nodes.append(newFrob)
nodes.sort()
聽起來像一個家庭作業... – robertklep
這是你的第二個問題,它也是一個作業的複製粘貼,就像第一個問題。請再次參考[問]。請[編輯]問題,以顯示您已經嘗試了什麼,以及您的具體問題是什麼。 'Ctrl + V'不足以完成你的功課。 –
即使您進行編輯,問題仍然會被關閉。如果你進一步改進它,它可以重新打開。 –