removido
(usa Nenhuma)
Enviado em 07/03/2010 - 12:34h
Pessoal, estou desenvolvendo um projeto de AVL. Todas as funcionalidades estão funcionando, sendo que quando peço para trocar o conteúdo de um nó, e depois voltar ao menu principal, ele simplesmente não mais reconhece nenhum comando system. Acredito que o erro só esteja numa função, pois as outras não apareceu este erro. Então vou mostrar a função de troca, e a do menu. Para que vocês possam analisar e tentar encontrar o erro.
// Função avl_replace() chamada pela replace_word()
int avl_replace(avl_node* avl, char* new_data, char* old_data)
{
if (avl == NULL)
return -1;
while (avl != NULL)
{
if (strcmp(avl->data,old_data) == 0){
free(avl->data);
strcpy(avl->data,new_data);
return 1;
}
else if (strcmp(avl->data,old_data) < 0)
avl = avl->right;
else
avl = avl->left;
}
return 0;
}
// Função replace_word() chamada pelo menu
avl_node* replace_word(avl_node** avl)
{
char word[MAX],newword[MAX];
int result;
printf("Letra antiga: ");
fflush(stdin);
scanf("%[^\n]",word);
getc(stdin);
printf("Letra nova: ");
fflush(stdin);
scanf("%[^\n]",newword);
getc(stdin);
result = avl_replace(avl, newword, word);
switch(result){
case -1: printf("Arvore vazia!"); break;
case 0: printf("Nao contem elemento na arvore para fazer a troca!"); break;
case 1: printf("Elemento trocado!"); break;
}
return avl;
}
// Função menu
void menu(avl_node** avl){
char opc;
avl_node** aux = avl;
//system("clear");
system("cls");
printf("TRABALHO SOBRE AVL\n\n");
printf("1. Inserir\n");
printf("2. Remover\n");
printf("3. Listar arvore\n");
printf("4. Localizar dado\n");
printf("5. Trocar conteudo\n");
printf("6. Menor dado\n");
printf("7. Maior dado\n");
printf("8. Copiar o conteudo de uma AVL para outra\n");
printf("0. Sair\n");
printf("Digite a sua escolha: ");
do{
opc = getchar();
if (opc == '1')
{
//system("clear");
system("cls");
printf("TRABALHO SOBRE AVL\n\n");
aux = add_words(&(*aux));
printf("\n\n");
system("pause");
menu(aux);
}
if (opc == '2')
{
//system("clear");
system("cls");
printf("TRABALHO SOBRE AVL\n\n");
aux = del_word(aux);
printf("\n\n");
system("pause");
menu(aux);
}
else if (opc == '3')
{
//system("clear");
system("cls");
printf("TRABALHO SOBRE AVL\n\n");
printf("Exibindo a arvore com o seu balanceamento:\n");
exibe_avl(*aux);
printf("\n\n");
system("pause");
menu(aux);
}
else if (opc == '4')
{
//system("clear");
system("cls");
printf("TRABALHO SOBRE AVL\n\n");
search_word(*aux);
printf("\n\n");
system("pause");
menu(aux);
}
else if (opc == '5')
{
//system("clear");
system("cls");
printf("TRABALHO SOBRE AVL\n\n");
aux = replace_word(*aux);
//printf("\n\n");
system("pause");
menu(aux);
}
else if (opc == '0')
{
return 0;
}
} while (opc != '1' && opc != '2' && opc != '3' && opc != '4' && opc != '5' && opc != '6' && opc != '7');
}