struct sTreeNode {
char *data;
struct sTreeNode *left;
struct sTreeNode *right;
};
TreeNode readtree(char **p)
{
if ((p == NULL) || (*p == NULL) || (strlen(*p) == 0))
return NULL;
char *s = *p;
char *temp = s, ch;
TreeNode tree = newtree();
while (ch = *(s++))
{
switch (ch)
{
case '>':
*(s - 1) = '\0';
tree->data = temp;
if (tree->left == NULL)
tree->left = readtree(&s);
else
tree->right = readtree(&s);
temp = s;
break;
case '<':
*(s - 1) = '\0';
tree->data = temp;
return tree;
default:
break;
}
}
tree->data = temp;
return tree;
}
Чтение дерева из строки (Си)...
a
/ \
sdf pp
(То есть ">" означает переход к "потомку", а "<" к "родителю" )...
Написал следующий код, но возникает проблема, при возврате из рекурсии не сохраняеться значение строки:
Код:
Заранее спасибо за помощь...
тэгами сами.