- struct TrieNode * root = getNode();
- struct TrieNode * sub_root = getNode();
- struct TrieNode * rule_0 = getNode();
- insert(sub_root, "1", 0, rule_0);
- struct TrieNode * rule_1 = getNode();
- insert(rule_0, "2", 1, rule_1);
- struct TrieNode * rule_2 = getNode();
- insert(rule_1, "3", 2, rule_2);
- struct TrieNode * rule_3 = getNode();
- insert(rule_2, "5", 3, rule_3);
- struct TrieNode * rule_4 = getNode();
- insert(rule_0, "2", 1, rule_4);
- struct TrieNode * rule_5 = getNode();
- insert(rule_4, "8", 2, rule_5);
- struct TrieNode * rule_3 = getNode();
- insert(rule_5, "5", 3, rule_3);
- insert(rule_3, "6", 2, NULL);
- struct TrieNode * rule_6 = getNode();
- insert(sub_root, "1", 0, rule_6);
- struct TrieNode * rule_7 = getNode();
- insert(rule_6, "2", 1, rule_7);
- struct TrieNode * rule_8 = getNode();
- insert(rule_7, "4", 2, rule_8);
- struct TrieNode * rule_9 = getNode();
- insert(rule_8, "5", 3, rule_9);
- insert(rule_9, "6", 4, NULL);
- struct TrieNode * rule_10 = getNode();
- insert(sub_root, "1", 0, rule_10);
- struct TrieNode * rule_11 = getNode();
- insert(rule_10, "2", 1, rule_11);
- struct TrieNode * rule_12 = getNode();
- insert(rule_11, "4", 2, rule_12);
- struct TrieNode * rule_13 = getNode();
- insert(rule_12, "5", 3, rule_13);
- insert(rule_13, "7", 4, NULL);