Я сейчас работаю над бинарным деревом поиска, и по какой-то причине этот цикл даже не запустился. Мы пробовали различные методы, чтобы проверить, является ли это проблемой strlen () или даже проблемой типа данных.
ElementType - это символ *.
void sortinsert(Node **root, ElementType str)
{
int i, j;
char temp;
char copy[100];
strcpy(copy, str);
int k = strlen(str);
printf("%d", k);
for (i = 0; i < k; i++) {
/*printf("%s", str);
printf("%c", *str);*/
printf("%d", i);
for (j = 0; j < strlen(str) - i; j++) {
if (str[j] > str[j + 1]) {
temp = str[j];
str[j] = str[j + 1];
str[j + 1] = temp;
}
}
}
Node *p = (Node *)malloc(sizeof(Node));
p->data = (char*)malloc(sizeof(char)*strlen(copy));
p->sig = (char*)malloc(sizeof(char)*strlen(str));
strcpy(p->sig, str);
strcpy(p->data, copy);
p->left = NULL;
p->right = NULL;
p->next = NULL;
Node *rootbackup;
if ((*root) == NULL) {
(*root) = p;
}
else {
rootbackup = *root;
if (strcmp((*root)->data, copy) > 0) {
sortinsert(&(*root)->left, copy);
}
else
{
if (strcmp((*root)->data,copy) < 0)
sortinsert(&(*root)->right, copy);
}
*root = rootbackup;
}
}