Input: an XML tree T Output: suffix tree T’ Program Construction_XML_Suff Create node p ← T.root; Create node p’← T’.root; Create Link sufixLink, add p’ into sufixLink; Create Array a;/*store the Temporal Code of node*/ While p <>null do Call Get_Next_Node; Call Add_p_to_T’; End While End Procedure Get_Next_Node If(p not exist child or all children of p have traveled) Call Set_SiffixLink; End If p=p.nextNode;/*in pretravel order ,if p have no next node, A=null*/ End Procedure Procedure Set_SiffixLink s=suffixLink.head; While s<>null If s.father<>null s =s.father; Else q=s; Remove q from suffixLink; End If s=s.next; End While End Procedure Procedure Add_p_to_T’ s = siffixLink.head; While s<>null If s.sementicPath equals p. sementicPath s={p}∪s; Else Create node m; m.value = p.value; m. sementicPath = p. sementicPath; Add m as s’s child; S=m; End IF S=s.next; End While End Procedure
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)