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 可以用來儲存一系列有序的資料,它可以讓我們快速的插入或刪除資料,而不需要移動其他資料。它也可以讓我們快速的建立複雜的資料結構,例如堆疊、佇列、圖等。

Categorized in:

Tagged in: