# リストの要素を定義するクラス
class Cell():
def __init__(self, n, k, v):
self.next = n # 次のCell
self.key = k # キー(文字列)
self.value = v # 値(数値)
# リストに要素を挿入する関数
def insertCell(head, key, value):
# ここを埋める
pass
# リストからkeyに対応する要素を削除する関数
def deleteCell(head, key):
# ここを埋める
pass
# リストからkeyに対応する要素の値を得る関数
def searchCell(head, key):
# ここを埋める
pass
# リストを全てクリアする関数
def clearCell(head):
while head.next != None:
tmp = head.next.next
del head.next
head.next = tmp
# リストを全て表示する関数
def printCell(head) :
text = "[ "
while head.next != None:
text += str(head.next.value)
if head.next.next != None:
text += ", "
head = head.next
text += " ]"
print(text)
if __name__ == "__main__":
# リストの先頭
# Noneは次の要素が無いことを表す
head = Cell(None, "head", -1)
insertCell(head, "one", 1)
insertCell(head, "two", 2)
insertCell(head, "three", 3)
printCell(head); #[1, 2, 3]
deleteCell(head, "two");
printCell(head) # [1, 3]
insertCell(head, "four", 4)
insertCell(head, "five", 5)
deleteCell(head, "five")
printCell(head) # [1, 3, 4]
print(searchCell(head, "three")) # 3
print(searchCell(head, "two")) # not found
clearCell(head)
printCell(head) # []
IyDjg6rjgrnjg4jjga7opoHntKDjgpLlrprnvqnjgZnjgovjgq/jg6njgrkKY2xhc3MgQ2VsbCgpOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIG4sIGssIHYpOgogICAgICAgIHNlbGYubmV4dCA9IG4gIyDmrKHjga5DZWxsCiAgICAgICAgc2VsZi5rZXkgPSBrICMg44Kt44O8KOaWh+Wtl+WIlykKICAgICAgICBzZWxmLnZhbHVlID0gdiAjIOWApCjmlbDlgKQpCgoKICAgICMg44Oq44K544OI44Gr6KaB57Sg44KS5oy/5YWl44GZ44KL6Zai5pWwCiAgICBkZWYgaW5zZXJ0Q2VsbChoZWFkLCBrZXksIHZhbHVlKToKICAgICAgICAjIOOBk+OBk+OCkuWfi+OCgeOCiwogICAgICAgIHBhc3MKCgogICAgIyDjg6rjgrnjg4jjgYvjgolrZXnjgavlr77lv5zjgZnjgovopoHntKDjgpLliYrpmaTjgZnjgovplqLmlbAKICAgIGRlZiBkZWxldGVDZWxsKGhlYWQsIGtleSk6CiAgICAgICAgIyDjgZPjgZPjgpLln4vjgoHjgosKICAgICAgICBwYXNzCgoKICAgICMg44Oq44K544OI44GL44KJa2V544Gr5a++5b+c44GZ44KL6KaB57Sg44Gu5YCk44KS5b6X44KL6Zai5pWwCiAgICBkZWYgc2VhcmNoQ2VsbChoZWFkLCBrZXkpOgogICAgICAgICMg44GT44GT44KS5Z+L44KB44KLCiAgICAgICAgcGFzcwoKCiAgICAjIOODquOCueODiOOCkuWFqOOBpuOCr+ODquOCouOBmeOCi+mWouaVsAogICAgZGVmIGNsZWFyQ2VsbChoZWFkKToKICAgICAgICB3aGlsZSBoZWFkLm5leHQgIT0gTm9uZToKICAgICAgICAgICAgdG1wID0gaGVhZC5uZXh0Lm5leHQKICAgICAgICAgICAgZGVsIGhlYWQubmV4dAogICAgICAgICAgICBoZWFkLm5leHQgPSB0bXAKCiAgICAjIOODquOCueODiOOCkuWFqOOBpuihqOekuuOBmeOCi+mWouaVsAogICAgZGVmIHByaW50Q2VsbChoZWFkKSA6CiAgICAgICAgdGV4dCA9ICJbICIKICAgICAgICB3aGlsZSBoZWFkLm5leHQgIT0gTm9uZToKICAgICAgICAgICAgdGV4dCArPSBzdHIoaGVhZC5uZXh0LnZhbHVlKQogICAgICAgICAgICBpZiBoZWFkLm5leHQubmV4dCAhPSBOb25lOgogICAgICAgICAgICAgICAgdGV4dCArPSAiLCAiCiAgICAgICAgICAgICAgICBoZWFkID0gaGVhZC5uZXh0CiAgICAgICAgICAgICAgICB0ZXh0ICs9ICIgXSIKICAgICAgICAgICAgICAgIHByaW50KHRleHQpCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgIyDjg6rjgrnjg4jjga7lhYjpoK0KICAgICMgTm9uZeOBr+asoeOBruimgee0oOOBjOeEoeOBhOOBk+OBqOOCkuihqOOBmQogICAgaGVhZCA9IENlbGwoTm9uZSwgImhlYWQiLCAtMSkKCiAgICBpbnNlcnRDZWxsKGhlYWQsICJvbmUiLCAxKQogICAgaW5zZXJ0Q2VsbChoZWFkLCAidHdvIiwgMikKICAgIGluc2VydENlbGwoaGVhZCwgInRocmVlIiwgMykKICAgIHByaW50Q2VsbChoZWFkKTsgI1sxLCAyLCAzXQoKICAgIGRlbGV0ZUNlbGwoaGVhZCwgInR3byIpOwogICAgcHJpbnRDZWxsKGhlYWQpICMgWzEsIDNdCgogICAgaW5zZXJ0Q2VsbChoZWFkLCAiZm91ciIsIDQpCiAgICBpbnNlcnRDZWxsKGhlYWQsICJmaXZlIiwgNSkKICAgIGRlbGV0ZUNlbGwoaGVhZCwgImZpdmUiKQogICAgcHJpbnRDZWxsKGhlYWQpICMgWzEsIDMsIDRdCgogICAgcHJpbnQoc2VhcmNoQ2VsbChoZWFkLCAidGhyZWUiKSkgIyAzCiAgICBwcmludChzZWFyY2hDZWxsKGhlYWQsICJ0d28iKSkgIyBub3QgZm91bmQKCiAgICBjbGVhckNlbGwoaGVhZCkKICAgIHByaW50Q2VsbChoZWFkKSAjIFtdCgo=