Thuật toán tìm thành phần liên thông mạnh của Tarjan
Thuật Toán Tarjan (được đặt theo tên của người tìm ra nó - Robert Tarjan) là một thuật toán trong lý thuyết đồ thị dùng để tìm thành phần liên thông mạnh trong một đồ thị. Mặc dù được tìm ra trước, nhưng nó có thể được xem như là phiên bản cải tiến của thuật toán Kosaraju.
Mã giả thuật toán.
 Dữ liệu vào: đồ thị G = (V, E)
 Dữ liệu ra: các thành phần liên thông mạnh (các tập hợp các đỉnh)
 index:= 0
 S:= empty
 for mỗi đỉnh v trong tập V do
 if (v.index không xác định) then
 strongconnect(v)
 end if
 repeat
 Hàm strongconnect(v)
 //Thiết lập chỉ số chiều sâu cho v sao cho chỉ số không sử dụng là nhỏ nhất
 v.index:= index
 v.lowlink:= index
 index:= index + 1
 S.push(v)
 // Xem đỉnh kế của v
 for mỗi (v, w) trong E do
 if (w.index không xác định) then
 // Đỉnh kế w chưa được viếng thăm; đệ quy thăm nó
 strongconnect(w)
 v.lowlink:= min(v.lowlink, w.lowlink)
 else if (w is in S) then
 // Đỉnh kế w nằm trong ngăn xếp S và do đó nằm trong thành phần liên thông mạnh hiện tại
 v.lowlink:= min(v.lowlink, w.index)
 end if
 repeat
 // Nếu v là nút gốc, lấy ra khỏi ngăn xếp và tạo ra một thành phần liên thông mạnh
 if (v.lowlink = v.index) then
 bắt đầu một thành phần liên thông mạnh
 repeat
 w:= S.pop()
 thêm w vào thành phân liên mạnh hiện tại
 until (w = v)
 xuất ra thành phần liên thông mạnh hiện tại
 end if
 end function