Arboles, archivo cabecera

#ifndef ARBOLES_H_INCLUDED #define ARBOLES_H_INCLUDED #include <stdio.h> #include <conio.h> #include <windows.h> typedef int elemento; typedef struct nodo{ elemento dato; nodo *izq, *der; }; typedef nodo *ap; typedef nodo *posicion; void inicializa (ap &r) { r=NULL; } int vacia (ap r) { if(r==NULL) return 1; return 0; } void inserta (elemento x, ap &r) { if(vacia(r)) { r = new nodo; r->dato=x; r->izq=NULL; r->der=NULL; } else { if(x>r->dato) inserta(x,r->der); else if(x<r->dato) inserta(x,r->izq); else printf("Dato repetido\n"); } } posicion buscar (elemento x, ap r) { posicion pos; pos=r; if(pos==NULL || x==pos->dato) return pos; else { if(x<pos->dato) return buscar(x,pos->izq); else return buscar(x,pos->der); } } //Mayor de los menores void eliminar(elemento x,ap &r) { ap aux, aux1, aux2; int bandera=0; if(r == NULL) printf("Elemento no encontrado"); else { if(x<r->dato) eliminar(x,r->izq); else if(x>r->dato) eliminar(x,r->der); else { aux2=r; if(aux2->der==NULL) r=aux2->der; else { if(aux2->izq==NULL) r=aux2->der; else { aux=r->izq; while(aux->der!=NULL) { aux1=aux; aux=aux->der; bandera=1; } r->dato=aux->dato; aux2=aux; if(bandera==1) aux1->der=aux->izq; else r->izq=aux->izq; } } printf("**Eliminado: %i**",aux2->dato); delete(aux2); } } } elemento maximo (posicion pos) { while(pos->der!=NULL) pos=pos->der; return pos->dato; } elemento minimo (posicion pos) { while(pos->izq!=NULL) pos=pos->izq; return pos->dato; } void pre_orden(ap r) { if(r!=NULL) { printf("%d\n",r->dato); pre_orden(r->izq); pre_orden(r->der); } } void in_orden(ap r) { if(r!=NULL) { in_orden(r->izq); printf("%d\n",r->dato); in_orden(r->der); } } void pos_orden(ap r) { if(r!=NULL) { pos_orden(r->izq); pos_orden(r->der); printf("%d\n",r->dato); } } void anula(ap &r) { if(r!=NULL) { anula(r->izq); anula(r->der); delete(r); } } #endif // ARBOLES_H_INCLUDED

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.