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 search(string word) { ITrieNode actualNode = _rootNode; foreach (char c in word) { if (actualNode.value(c) == null) { //Si la letra no existe no está break; } else { //Si sí existe se sigue revisando actualNode = actualNode.value(c); } } return(actualNode.isTerminated()); }
private ITrieNode MoveNextAux(ITrieNode currentNode) { if (Convert.ToBoolean(currentNode.isTerminated())) {//Caso Base Recursivo return(currentNode); } else { for (int i = 0; i < 27; i++) { char currentChar = numToChar(i); if (currentNode.value(currentChar) != null) //Si encuentra una letra { _currentWord += currentChar; //Se añade la letra encontrada return(MoveNextAux(currentNode.value(currentChar))); } } return(null); } }