Python Linked List
Linked List 是一種常見的資料結構,它是一種簡單的線性表,由一系列節點(Node)組成,每個節點都有一個指向下一個節點的指標,而最後一個節點的指標指向 NULL。Linked List 可以用來儲存一系列有序的資料,它可以讓我們快速的插入或刪除資料,而不需要移動其他資料。
在 Python 中,我們可以使用 list 來建立 Linked List,每個元素都是一個節點,而每個節點都有一個指向下一個節點的指標,指向 None 代表結束。
class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self): self.head = None # 建立節點 node1 = Node("A") node2 = Node("B") node3 = Node("C") # 建立 Linked List linkedlist = LinkedList() linkedlist.head = node1 # 將節點串接起來 node1.next = node2 node2.next = node3
上面的程式碼建立了一個 Linked List,它有三個節點,分別是 A、B、C,而 A 的指標指向 B,B 的指標指向 C,C 的指標指向 None,代表結束。
Linked List 可以用來儲存一系列有序的資料,它可以讓我們快速的插入或刪除資料,而不需要移動其他資料。
例如,我們可以使用 Linked List 來建立一個排序的資料表,我們可以使用 insert() 方法來插入新的資料,而不需要移動其他資料:
def insert(self, data): new_node = Node(data) current = self.head if current is None: self.head = new_node else: while current.next is not None: current = current.next current.next = new_node
Linked List 在許多應用上都很有用,例如,它可以用來建立堆疊(Stack)、佇列(Queue)、圖(Graph)等資料結構。
Linked List 的優點
Linked List 有許多優點,例如:
- 它可以快速的插入或刪除資料,而不需要移動其他資料。
- 它可以讓我們快速的查找資料。
- 它可以讓我們快速的排序資料。
- 它可以讓我們快速的建立複雜的資料結構,例如堆疊、佇列、圖等。
Linked List 的缺點
Linked List 也有一些缺點,例如:
- 它需要額外的記憶體來儲存指標。
- 它不能快速的隨機存取資料,因為它是一個線性表。
- 它的搜尋效率較低,因為它是一個線性表。
總結
Linked List 是一種常見的資料結構,它是一種簡單的線性表,由一系列節點(Node)組成,每個節點都有一個指向下一個節點的指標,而最後一個節點的指標指向 NULL。Linked List 可以用來儲存一系列有序的資料,它可以讓我們快速的插入或刪除資料,而不需要移動其他資料。它也可以讓我們快速的建立複雜的資料結構,例如堆疊、佇列、圖等。