private int removeAux(string word, ITrieNode node) //TODO: FALTA PROBAR { if (word == "") { //Caso base recursivo if (!Convert.ToBoolean(node.isTerminated())) { return(0); } } else if (Convert.ToBoolean(node.isTerminated())) //TODO: Falta verificar que ya se haya revisado toda la palabra { return(0); } else { //Caso trivial removeAux(word.Substring(1), node.value(word[0])); } //Rollback if (node.getChildrenCount() < 2) { node.asign(word[0], null); return(1); } else { return(0); } }
public int insert(string word) { ITrieNode actualNode = _rootNode; foreach (char c in word) { if (actualNode.value(c) == null) { //Si la letra no existe se crea la nueva rama actualNode.asign(c, new TrieNode(actualNode)); actualNode = actualNode.value(c); } else { //Si sí existe se sigue revisando actualNode = actualNode.value(c); } } return(actualNode.terminate());//Retorna si ya la palabra existía }