91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python單鏈表的實現

發布時間:2020-07-22 01:38:50 來源:網絡 閱讀:2005 作者:Forande 欄目:編程語言
'''
當加入第一個node節點的時候,會有幾個值,(這里的self.tail.next 其實就是node.next)
head = item = tail = Node(object element1 memory)
item = head = tail = Node(object element1  memory)
next = None
tail = item = head = Node(object element1  memory)

當加入第二個元素node節點的時候,next1值會改變,tail會向后漂移,head將會保留
新加入第二個元素后第一個節點變成了
head = item1 = Node(object element1  memory)
item1= head = Node(object element1  memory)
next = Node(object element2  memory)

第二個節點為:
item = tail =  Node(object element2  memory)
next =  Node(object element2  memory)
tail = item =  Node(object element2  memory)

當加入第三個元素的時候,tail.next繼續為None item為新元素tail結束元素為新元素,
item = tail =  Node(object element3  memory)
next = None
tail = item =  Node(object element3  memory)
'''

class Node:
    def __init__(self,item,next=None):
        self.item = item #記錄元素
        self.next = next #記錄下一跳節點

    #為了輸出 我們可以看到的結果:
    def __repr__(self):
        return '{} ==> {}'.format(self.item,self.next)

class LinkedList:
    def __init__(self):
        self.head= None
        self.tail = None

    def append(self,value):
        #添加鏈表前需要,實例化一個節點,來進行賦值
        node = Node(value) #實例化節點
        #添加鏈表,首先判斷鏈表是否為空,
        # 空列表時 head= tail = None
        #添加元素后head = value = tail = Node(value) = node
        if self.head == None:
            self.head = node
            # self.tail = node
        #當鏈表不為空時向后添加,既是向后添加,添加后的值為
        # self.tail.next = Node(last(value)).next = node
        #要知道self.tail值的改變是不應為append的改變而改變了,只是再重新賦值之后才會改變的
        # self.tail = node #現在的結尾部分被重新賦值
        else:
            self.tail.next = node #如果添加的是最后一位,next就是默認值既是None
            # self.tail = node
        # if和slse有公共部分self.tail = node可以直接提出來,
        self.tail = node

    def iternode(self):
        #這里的迭代可以使用我們定義好的方法來做,因為每個node節點都有next可以調用下一個節點,因此我們可以利用這一特性來做迭代
        #因為我們不知道需要迭代的個數有多少個,因此只能使用yield配合while循環來做,然后使用節點的下一個來重賦值,知道current為None,while循環結束
        current = self.head
        while current:
            yield current
            current = current.next
ll = LinkedList()
ll.append(1)
ll.append(2)
ll.append(3)
for i in ll.iternode():
    print(i)

輸出結果為:

1 ==> 2 ==> 3 ==> None
2 ==> 3 ==> None
3 ==> None
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永春县| 红安县| 临泽县| 南乐县| 麻江县| 四会市| 修水县| 尤溪县| 岢岚县| 巴青县| 邓州市| 石嘴山市| 赤壁市| 南郑县| 黎平县| 宁波市| 中江县| 无锡市| 丁青县| 星座| 福清市| 兰考县| 崇州市| 嘉黎县| 贵州省| 灵宝市| 松溪县| 霍州市| 雷山县| 驻马店市| 象州县| 罗源县| 嫩江县| 西和县| 清新县| 锡林浩特市| 古交市| 青龙| 嘉兴市| 伊通| 北安市|