Can you summarize the following document?
        
  設一個字典中有如下單詞:{a,ab,bab,bc,bca,c,caa}.  下方的圖是用AC自動機演算法由該詞典構造而成的一棵Trie樹,其中每個節點都有一條從根節點到它的唯一路徑,代表一個單詞。  在這種資料結構中,字串的每一個字首都有一個節點來表示(詳見Trie)。所以如果(bca)在字典中,則會存在(bca),(bc),(b)和()對應的節點。如果該節點表示的字串在字典中存在,則該節點為一個藍色節點,否則為一個灰色節點。  樹中的黑色有向邊代表起點是終點的“父親”(即起點對應字串增加一個字元可得終點對應字串),例如從(bc)有一條指向(bca)的黑色有向邊。  樹中的藍色有向邊(字尾節點)代表終點對應字串是起點對應字串的最大嚴格字尾。例如對於一個節點(caa),它的嚴格字尾為(aa),(a)和(),其中在圖中且最長的為(a),所以(caa)有一條指向(a)的藍色有向邊。一個節點的藍色有向邊可以線上性時間內通過重複遍歷節點父親節點的藍色有向邊直到橫移節點(the traversing node)有一個屬於目標節點字首的孩子。  樹中的綠色有向邊(字典字尾節點)代表終點是起點經過藍色有向邊到達的第一個藍色節點(即字典中存在終點對應字串)。例如(bca)有一條綠色邊連向(a),因為(a)是(bca)通過藍色有向邊到達的第一個藍色節點,路徑為(bca)→(ca)→(a)。綠色有向邊也可以線上性時間內通過遍歷藍色有向邊直到找到一個藍色節點,並用記憶化的方法計算。  在每一步中,演算法先查詢當前節點的“孩子節點”,如果沒有找到匹配,查詢它的字尾節點(suffix)的孩子,如果仍然沒有,接著查詢字尾節點的字尾節點的孩子, 如此迴圈, 直到根結點,如果到達根節點仍沒有找到匹配則結束。  當演算法查詢到一個節點,則輸出所有結束在當前位置的字典項。輸出步驟為首先找到該節點的字典字尾,然後用遞迴的方式一直執行到節點沒有字典字首為止。同時,如果該節點為一個字典節點,則輸出該節點本身。  輸入後演算法的執行步驟如下:
在電腦科學中,Aho–Corasick演算法是由Alfred V. Aho和Margaret J.Corasick 發明的字串搜尋演算法,用於在輸入的一串字串中匹配有限組“字典”中的子串。它與普通字串匹配的不同點在於同時與所有字典串進行匹配。演算法均攤情況下具有近似於線性的時間複雜度,約為字串的長度加所有匹配的數量。然而由於需要找到所有匹配數,如果每個子串互相匹配(如字典為a,aa,aaa,aaaa,輸入的字串為aaaa),演算法的時間複雜度會近似於匹配的二次函式。