Python実装単独リンクリスト
このブログでは、我々が導入一本鎖にこのデータ構造を、リンクされたリスト構造(例えば、Pythonリスト)の代替を提供するアレイベースのシーケンスです。
配列リストおよび持って特定の順序を維持することができる素子のアレイに基づいているが、根本的に異なる方法であります
単一のリストとは何ですか
単鎖最も単純な形態は、一緒になって直鎖状配列を形成する複数のノードの集合です。各ノードは、シーケンス内の要素への参照点を基準オブジェクトを格納する、すなわち、リスト内の次のノードへのポインタを格納します。
私、あなたを、彼を - 実際には、方言での生活との上記用語は、私たちが今3を持っていることを説明します。私はあなたが、これ一本鎖を形成し、指を指して指をポイントすると、指が参照され、「私は、あなたが、彼は」要素のシーケンスです。私はあなたが理解していないか分からないのですか?
class Node(object):
'''声明节点'''
def __init__(self, element):
self.element = element # 给定一个元素
self.next = None # 初始设置下一节点为空
class Singly_linked_list:
'''单链表'''
def __init__(self, node=None):
self.__head = node
def is_empty(slef):
'''判断链表是否为空'''
return self.__head == None
def length(self):
'''返回链表长度'''
cur = self.__head # cur游标,用来移动遍历节点
count = 0 # count记录节点数量
while cur is not None:
count += 1
cur = cur.next
return count
def travel_list(self):
'''遍历整个链表,打印每个节点的数据'''
cur = self.__head
while cur is not None:
print(cur.elememt, end=" ")
cur = cur.next
print("\n")
def insert_head(self, element):
newest = Node(element) # 创建一个新节点
if self.is_empty():
self.__head = newest
else:
cur = self.__head
while cur.next is not None:
cur = cur.next
cur.next = newest