code: public HashSet<String> getStringsStartingWith(String prefixStr)
      {
          HashSet<String> strHashSet = new HashSet<String>();
  
          if (sourceNode != null)      //if the MDAG hasn't been simplified
          {
              MDAGNode originNode = sourceNode.transition(prefixStr);  //attempt to _transition down the path denoted by prefixStr
  
              if (originNode != null) //if there a _transition path corresponding to prefixString (one or more stored Strings begin with prefixString)
              {
                  if (originNode.isAcceptNode()) strHashSet.add(prefixStr);
                  getStrings(strHashSet, SearchCondition.PREFIX_SEARCH_CONDITION, prefixStr, prefixStr, originNode.getOutgoingTransitions());   //retrieve all Strings that extend the _transition path denoted by prefixStr
              }
          }
          else
          {
              SimpleMDAGNode originNode = SimpleMDAGNode.traverseMDAG(mdagDataArray, simplifiedSourceNode, prefixStr);      //attempt to _transition down the path denoted by prefixStr
  
              if (originNode != null)      //if there a _transition path corresponding to prefixString (one or more stored Strings begin with prefixStr)
              {
                  if (originNode.isAcceptNode()) strHashSet.add(prefixStr);
                  getStrings(strHashSet, SearchCondition.PREFIX_SEARCH_CONDITION, prefixStr, prefixStr, originNode);        //retrieve all Strings that extend the _transition path denoted by prefixString
              }
          }
  
          return strHashSet;
      }
docs: 前缀查询<br>
  Retrieves all the Strings in the MDAG that begin with a given String.
  
  @param prefixStr a String that is the prefix for all the desired Strings
  @return a HashSet containing all the Strings present in the MDAG that begin with {@code prefixString}