Tree Sort

Run Settings
LanguageC
Language Version
Run Command
#include <stdio.h> #include <stdlib.h> typedef struct tree { struct tree *left, *right; int valor; } treeNode; /** * Recebe uma estrutura e um valor * * Caso tenha algo na estrutura, o valor recebido e comparado com o valor da * estrutura, e o valor é mandado para um nó a esquerda ou da direita dependendo * se o valor recebido é maior o menor que o valor na estrutura. * * Caso a estrutura seja vazia, um nó é criado para conter o valor */ void insert(treeNode **node, int val) { if(*node) { if((*node)->valor > val) insert(&(*node)->left, val); else if((*node)->valor < val) insert(&(*node)->right, val); } else { *node = malloc(sizeof(treeNode)); (*node)->left = NULL; (*node)->right = NULL; (*node)->valor = val; } } /** * Caso a estutura tenha algo, a função vai o máximo possivel a esquerda, * imprime o valor e em seguida vai para direita * até chegara uma estrutura vazia */ void printTreeSorted(treeNode *node) { if(node) { printTreeSorted(node->left); printf("%d ", node->valor); printTreeSorted(node->right); } } int main(void) { treeNode *tree=NULL; int val; while(1) { printf("Digite um valor ou -1 para sair: "); scanf("%d", &val); printf("%d\n", val); // Comentar essa linha para usar inputs de usuários if(val == -1) break; insert(&tree, val); } printf("\n\nArvore organizada:\t"); printTreeSorted(tree); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines