Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Classificação: Pública UNIVERSIDADE VEIGA DE ALMEIDA Aluno: Matheus dos Santos Cardoso Matrícula: 1220106496 ESTRUTURA DE DADOS I AVALIAÇÃO 2 TRABALHO DA DISCIPLINA Rio de Janeiro/RJ 2023 2 Classificação: Pública #include <stdio.h> #include <stdlib.h> // Estrutura de um nó da árvore struct Node { int key; struct Node *left, *right; }; // Função para criar um novo nó struct Node* createNode(int key) { struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); newNode->key = key; newNode->left = newNode->right = NULL; return newNode; } // Função para inserir um nó na árvore struct Node* insertNode(struct Node* root, int key) { if (root == NULL) return createNode(key); if (key < root->key) root->left = insertNode(root->left, key); else if (key > root->key) root->right = insertNode(root->right, key); return root; } // Função para buscar em pré-ordem void preOrderTraversal(struct Node* root) { if (root != NULL) { printf("%d ", root->key); preOrderTraversal(root->left); 3 Classificação: Pública preOrderTraversal(root->right); } } // Função para buscar em ordem void inOrderTraversal(struct Node* root) { if (root != NULL) { inOrderTraversal(root->left); printf("%d ", root->key); inOrderTraversal(root->right); } } // Função para buscar em pós-ordem void postOrderTraversal(struct Node* root) { if (root != NULL) { postOrderTraversal(root->left); postOrderTraversal(root->right); printf("%d ", root->key); } } // Função principal int main() { struct Node* root = NULL; int choice, key; do { // Exibindo o menu de opções printf("\n* * * MENU DE OPCOES * * *\n"); printf("1. Incluir no\n"); printf("2. Remover no\n"); 4 Classificação: Pública printf("3. Buscar pre-ordem\n"); printf("4. Buscar em ordem\n"); printf("5. Buscar pos-ordem\n"); printf("0. Encerrar\n"); // Lendo a escolha do usuário printf("Opcao: "); scanf("%d", &choice); // Executando a opção escolhida switch (choice) { case 1: printf("Digite o valor do no a ser incluido: "); scanf("%d", &key); root = insertNode(root, key); break; case 2: // Implemente a remoção do nó break; case 3: printf("Busca pre-ordem: "); preOrderTraversal(root); printf("\n"); break; case 4: printf("Busca em ordem: "); inOrderTraversal(root); 5 Classificação: Pública printf("\n"); break; case 5: printf("Busca pos-ordem: "); postOrderTraversal(root); printf("\n"); break; case 0: printf("Encerrando o programa.\n"); break; default: printf("Opcao invalida. Tente novamente.\n"); } } while (choice != 0); return 0; }
Compartilhar