Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct nodo{
- int valor;
- struct nodo* ptrHI;
- struct nodo* ptrHD;
- } TNodo;
- int min,max;
- void crear_arbol(TNodo ** ptrRaiz);
- void inserta_nodo(TNodo **ptrRaiz, int valor);
- int esta_intervalo(TNodo **);
- int es_nodo_hoja(TNodo *);
- void crear_arbol(TNodo ** ptrRaiz){
- *ptrRaiz = NULL;
- }
- void inserta_nodo(TNodo **ptrRaiz, int valor){
- TNodo *ptrHoja, *ptrRecorrido, *ptrPadre;
- ptrHoja = (TNodo*)malloc(sizeof(TNodo));
- ptrHoja->valor = valor;
- ptrHoja->ptrHI=ptrHoja->ptrHD=NULL;
- if(*ptrRaiz){
- ptrRecorrido = *ptrRaiz;
- ptrPadre = NULL;
- while (ptrRecorrido){
- ptrPadre = ptrRecorrido;
- if (ptrRecorrido->valor > valor)
- ptrRecorrido = ptrRecorrido->ptrHI;
- else
- ptrRecorrido = ptrRecorrido->ptrHD;
- }
- if (ptrPadre->valor > valor)
- ptrPadre->ptrHI = ptrHoja;
- else
- ptrPadre->ptrHD = ptrHoja;
- }
- else{
- *ptrRaiz = ptrHoja;
- }
- }
- int es_nodo_hoja(TNodo *ptrRaiz){
- if (ptrRaiz->ptrHI ==NULL) return 1;
- if (ptrRaiz->ptrHD ==NULL) return 1;
- return 0;
- }
- int esta_intervalo(TNodo** ptrRaiz){
- TNodo *aux=*ptrRaiz;//nodo auxiliar
- TNodo *aux1;
- int r,s;
- if(aux->valor>=min && aux->valor<=max ){
- /*si es nodo hoja , retorna 1*/
- if(es_nodo_hoja(aux)){
- return 1;
- }else{
- aux1=aux->ptrHI;
- r=esta_intervalo(&aux1);
- aux1=aux->ptrHD;
- s=esta_intervalo(&aux1);
- if(r && s) return 1; //si esta en el intervalo
- else return 0;
- }
- }else{
- return 0;
- }
- }
- int main(int argc, char** argv) {
- TNodo *ptrRaiz;
- int esta;
- crear_arbol(&ptrRaiz);
- inserta_nodo(&ptrRaiz, 15);
- inserta_nodo(&ptrRaiz, 10);
- inserta_nodo(&ptrRaiz, 17);
- inserta_nodo(&ptrRaiz, 19);
- inserta_nodo(&ptrRaiz, 16);
- inserta_nodo(&ptrRaiz, 5);
- inserta_nodo(&ptrRaiz, 14);
- scanf("%d",&min);
- scanf("%d",&max);
- esta=esta_intervalo(&ptrRaiz);
- if (esta){
- printf("Estan en el intervalo\n");
- }else{
- printf("No estan en el intervalo\n");
- }
- return (EXIT_SUCCESS);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement