Você não pode usar tsort diretamente se algumas de suas strings de entrada contiverem espaço em branco.
Você pode verificar a origem, verá que os delimitadores são codificados para espaço, guia e nova linha e não há nenhuma opção para alterá-los.
Se você quiser usar tsort em um conjunto de dados em que palavras podem conter espaços em branco, minha recomendação seria pré-processar o conjunto de dados para codificar espaços em branco como um caractere não em branco (ou seqüência de caracteres não-brancos). execute tsort nele e, finalmente, pós-processe a saída final para decodificá-lo de volta para o espaço em branco original.
Você provavelmente pode usar sed
nas etapas de pré e pós-processamento. O caractere a ser usado para codificar os espaços em branco depende do conjunto de dados. Se houver outros caracteres inválidos (por exemplo, #
ou @
, $
ou \
), talvez você possa usá-los diretamente. Caso contrário, convém considerar uma codificação de dois caracteres (por exemplo, espaço de codificação como \s
) e incluir uma maneira de codificar o próprio caractere de aspas (por exemplo, \
para codificar um único backspace).