Skip to main content
. Author manuscript; available in PMC: 2016 Mar 11.
Published in final edited form as: Proc Int Conf Data Eng. 2015 Apr;2015:1035–1046. doi: 10.1109/ICDE.2015.7113354

Algorithm 2 Sequence Reconstruction

Input:
Sequence S; CS-tree CT constructed based on candidate k-sequences Ck;
Maximal Length Constraint lmax;
Output:
Sequence Ŝ;
1: subCTbuild_CSTree (CT, S);
2: for each candidate sequence cs in S do
3: cs.GNfind_GNodes (cs, subCT);
4: cs.scoresum_childNodes (cs.GN);
5: end for
6: s ← Select a candidate sequence;
7: insert (Ŝ, s); update_tree(subCT, s);
8: while |Ŝ| < lmax do
9: GNfind_GNodes (Ŝ, subCT);
10: if GN.childNodeNum() ≠ 0 then
11:   for each g-node gn in GN do
12:    Item_GNode_Mapmap_item_g-node (gn);
13:   end for
14:   item ifind_item (Item_GNode_Map);
15:   insert (Ŝ, i); update_Tree (subCT, i, Item_GNode_Map);
16: else
17:   for each c-node cn in subCT do
18:    cscn's associated sequence;
19:    cs.GNfind_GNodes (cs, subCT);
20:    cs.scoresum_childNodes (cs.GN);
21:   end for
22:   s ← Select a candidate sequence;
23:   insert (Ŝ, s); update_Tree(subCT, s);
24: end if
25: end while
26: return Ŝ;