TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

A Estrutura de Dados

Por:   •  14/6/2024  •  Trabalho acadêmico  •  2.033 Palavras (9 Páginas)  •  51 Visualizações

Página 1 de 9

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#include <locale.h>

/*Declaração da Estrutura do Registro*/

struct carro

{

};

char nome[30];

char marca[30];

int ano;

float preco;

/*Declaração da Estrutura da Árvore*/

struct No

{

};

int numero;

struct carro x;

struct No *esquerda;

struct No *direita;

typedef struct No No;

/*Criar Árvore*/

void criarArvore(No **pRaiz)

{

*pRaiz = NULL;

}

/*Inserir Elemento*/

void inserir(No **pRaiz, int numero, struct carro x)

{

if (*pRaiz == NULL)

{

*pRaiz = (No *)malloc(sizeof(No));

(*pRaiz)->esquerda = NULL;

(*pRaiz)->direita = NULL;

(*pRaiz)->numero = numero;

(*pRaiz)->x = x;

}

else

{

if (numero < (*pRaiz)->numero)

inserir(&(*pRaiz)->esquerda, numero, x);

if (numero > (*pRaiz)->numero)

inserir(&(*pRaiz)->direita, numero, x);

}

}

/*Teste Nó Maior Direita*/

No *MaiorDireita(No **no)

{

if ((*no)->direita != NULL)

return MaiorDireita(&(*no)->direita);

else

{

No *aux = *no;

if ((*no)->esquerda != NULL)

*no = (*no)->esquerda;

else

*no = NULL;

return aux;

}

}

/*Teste Nó Maior Esquerda*/

No *MenorEsquerda(No **no)

{

if ((*no)->esquerda != NULL)

return MenorEsquerda(&(*no)->esquerda);

else

{

No *aux = *no;

if ((*no)->direita != NULL)

*no = (*no)->direita;

else

*no = NULL;

return aux;

}

}

/*Remover Elemento*/

void remover(No **pRaiz, int numero)

{

if (*pRaiz == NULL)

{

printf("\nNúmero não existe na árvore! \n");

return;

}

if (numero < (*pRaiz)->numero)

remover(&(*pRaiz)->esquerda, numero);

else if (numero > (*pRaiz)->numero)

remover(&(*pRaiz)->direita, numero);

else

{

No *pAux = *pRaiz;

if (((*pRaiz)->esquerda == NULL) && ((*pRaiz)->direita == NULL))

{

free(pAux);

printf("\nRemovido com Sucesso! \n");

(*pRaiz) = NULL;

}

else

{

if ((*pRaiz)->esquerda == NULL)

{

(*pRaiz) = (*pRaiz)->direita;

pAux->direita = NULL;

free(pAux);

pAux = NULL;

printf("\nRemovido com Sucesso! \n");

}

else

{

if ((*pRaiz)->direita == NULL)

...

Baixar como (para membros premium)  txt (5.7 Kb)   pdf (45.5 Kb)   docx (10.6 Kb)  
Continuar por mais 8 páginas »
Disponível apenas no TrabalhosGratuitos.com