Buscar

ESTRUTURA DE DADOS AVA 2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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; 
}

Continue navegando