$ ./trie key: key: 1 key: 2 branch start zrule_name = rule_ zkey = 2 insert(rule_0, "2", 1, rule_2); insert(rule_1, "a", 2, rule_2); FINAL zrule_name = rule_ zkey = 2 insert(rule_0, "2", 1, rule_3); insert(rule_3, "a", 2, rule_2); RULE FINAL branch end key: 6 struct TrieNode * root = getNode(); struct TrieNode * sub_root = getNode(); insert(sub_root, "1", 0, rule_0); insert(rule_0, "2", 1, NULL); insert(rule_0, "2", 1, rule_1); insert(rule_1, "a", 2, rule_2); insert(rule_0, "2", 1, rule_3); insert(rule_3, "a", 2, rule_2); insert(rule_2, "6", 2, NULL);