#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLEN 15
typedef struct treeNode{
char string[MAXLEN+1];
struct treeNode *left;
struct treeNode *right;
}treeNode;
treeNode * insert(treeNode *node, char s[])
{
if(node == NULL)
{
strncpy(node
->string
, s
, sizeof(node
->string
)-1); node->string[ sizeof(node->string)-1 ] = 0;
node->left = node->right = NULL;
}
else if(strcmp(s
, node
->string
) > 0) node->right = insert(node->right, s);
else
node->left = insert(node->left, s);
return node;
}
void print_sorted_tree(const treeNode* p, FILE *fp)
{
if (!p)
return;
print_sorted_tree(p->left, fp);
print_sorted_tree(p->right, fp);
}
int main(int argc, char *argv[])
{
treeNode *root = NULL;
FILE *ifp = stdin;
FILE *ofp = stdout;
char s[MAXLEN+1];
while(fscanf(ifp
, "%s\n", s
) == 1) root = insert(root, s);
print_sorted_tree(root, ofp);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojZGVmaW5lIE1BWExFTiAxNQoKdHlwZWRlZiBzdHJ1Y3QgdHJlZU5vZGV7CiAgICBjaGFyIHN0cmluZ1tNQVhMRU4rMV07CiAgICBzdHJ1Y3QgdHJlZU5vZGUgKmxlZnQ7CiAgICBzdHJ1Y3QgdHJlZU5vZGUgKnJpZ2h0Owp9dHJlZU5vZGU7Cgp0cmVlTm9kZSAqIGluc2VydCh0cmVlTm9kZSAqbm9kZSwgY2hhciBzW10pCnsKICAgIGlmKG5vZGUgPT0gTlVMTCkKICAgIHsKICAgICAgICBub2RlID0gbWFsbG9jKHNpemVvZigqbm9kZSkpOwogICAgICAgIHN0cm5jcHkobm9kZS0+c3RyaW5nLCBzLCBzaXplb2Yobm9kZS0+c3RyaW5nKS0xKTsKICAgICAgICBub2RlLT5zdHJpbmdbIHNpemVvZihub2RlLT5zdHJpbmcpLTEgXSA9IDA7CiAgICAgICAgbm9kZS0+bGVmdCA9IG5vZGUtPnJpZ2h0ID0gTlVMTDsKICAgIH0KICAgIAogICAgZWxzZSBpZihzdHJjbXAocywgbm9kZS0+c3RyaW5nKSA+IDApCiAgICAgICAgbm9kZS0+cmlnaHQgPSBpbnNlcnQobm9kZS0+cmlnaHQsIHMpOwogICAgZWxzZQogICAgICAgIG5vZGUtPmxlZnQgPSBpbnNlcnQobm9kZS0+bGVmdCwgcyk7CiAgICAKICAgIHJldHVybiBub2RlOwp9Cgp2b2lkIHByaW50X3NvcnRlZF90cmVlKGNvbnN0IHRyZWVOb2RlKiBwLCBGSUxFICpmcCkKewogICAgaWYgKCFwKQogICAgICAgIHJldHVybjsKICAgIAogICAgcHJpbnRfc29ydGVkX3RyZWUocC0+bGVmdCwgZnApOwogICAgZnByaW50ZihmcCwgIiVzXG4iLCBwLT5zdHJpbmcpOwogICAgcHJpbnRfc29ydGVkX3RyZWUocC0+cmlnaHQsIGZwKTsKfQoKCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCnsKICAgIHRyZWVOb2RlICpyb290ID0gTlVMTDsKICAgIAogICAgRklMRSAqaWZwID0gc3RkaW47CiAgICBGSUxFICpvZnAgPSBzdGRvdXQ7CiAgICBjaGFyIHNbTUFYTEVOKzFdOwogICAgCiAgICB3aGlsZShmc2NhbmYoaWZwLCAiJXNcbiIsIHMpID09IDEpCiAgICAgICAgcm9vdCA9IGluc2VydChyb290LCBzKTsKICAgIAogICAgcHJpbnRfc29ydGVkX3RyZWUocm9vdCwgb2ZwKTsKICAgIAogICAgcmV0dXJuIDA7Cn0=