예제 #1
0
 public bool MoveNext()
 {
     //Verificamos si estamos en el inicio del árbol y cuál es el último cáracter recorrido
     if (0 == _currentWord.Length)               //Si sí, empezamos desde el inicio
     {
         _currentNode = MoveNextAux(_currentNode);
         return(true);
     }
     else                                        //Si no avanzamos a partir del último carácter leído
     {
         if (_currentNode != null)
         {
             if (_currentNode.getChildrenCount() > 0)
             {
                 for (int i = charToNum(_currentWord[_currentWord.Length]) + 1; i < 27; i++)
                 {
                     if (_currentNode.value(numToChar(i)) != null)
                     {
                         _currentNode = _currentNode.value(numToChar(i));//TODO: Genera inconsistencia
                         _currentNode = MoveNextAux(_currentNode);
                     }
                 }
             }
             else
             {
                 _currentWord.Substring(0, _currentWord.Length - 1);//Elimina el último caracter
                 _currentNode = _currentNode.getParent();
                 for (int i = charToNum(_currentWord[_currentWord.Length]) + 1; i < 27; i++)
                 {
                     if (_currentNode.value(numToChar(i)) != null)
                     {
                         _currentNode = _currentNode.value(numToChar(i));//TODO: Genera inconsistencia
                         _currentNode = MoveNextAux(_currentNode);
                     }
                 }
             }
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }