Plantillas para editar en Word – PowerPoint y Excel

Descarga plantillas y edítalo gratis

videotutorial powerpoint

Tutorial PowerPoint

Aprende a crear presentaciones interactivas usando animaciones, audio y videos.

videotutorial word

Tutorial Word

Aprende a crear documentos y plantillas para tus trabajos usando herramientas de Word

videotutorial excel

Tutorial Excel

Aprende a crear tablas, insertar datos, usar fórmulas y funciones para tus trabajos en Excel

Arbol binario (ABB)

Mayor y menor de un árbol binario

Hacer un programa que permita buscar un elemento, el elemento mayor, el elemento menor y el menor de los mayores de un árbol binario.

#include <iostream.h>
#include <conio.h>
struct nodo
    {
     int valor;
     struct nodo* izq;
     struct nodo* der;
    };
typedef struct nodo *ABB;
void inserta(ABB& ,int);
void preorden(ABB);
void postorden(ABB);
void enorden(ABB);
void verarbol(ABB,int);
int buscar(ABB,int);
int buscarmayor(ABB);
int buscarmenor(ABB);
void podar(ABB&,int);

void main()
{
ABB arbol=NULL;
ABB subarbol=NULL;
int n,x,opc,a;
  do
    {
     cout<<"menu principal"<<endl;
     cout<<"1.ingresar elementos"<<endl;
     cout<<"2.pre orden"<<endl;
     cout<<"3.mostrar hojas"<<endl;
     cout<<"4.en orden"<<endl;
     cout<<"5.visualizar arbol"<<endl;
     cout<<"6.buscar elementos"<<endl;
     cout<<"7.buscar mayor"<<endl;
     cout<<"8.buscar menor"<<endl;
     cout<<"9.podar"<<endl;
     cout<<"10.talar"<<endl;
     cout<<"11.menor de los mayores"<<endl;
     cout<<"0.salir"<<endl;
     cout<<"=========================="<<endl;
     cout<<"ingrese una opcion: ";cin>>opc;
   switch(opc)
  {
   case 1:{
    cout<<"ingrese cantidad  de elem. al arbol: ";cin>>n;
    for(int i=0;i<n;i++)
       {
        cout<<"ingrese numero"<<i<<" : ";cin>>x;
        inserta(arbol,x);
       }
    getch();
    break;
   }//fin case1
   case 2:{
   if(arbol!=NULL)
     {
      cout<<endl<<"pre orden : ";
      preorden(arbol);
     }
   else
   {
    cout<<"el arbol no tiene elementos";
   }
   getch();
   break;
   }//fin case2
   case 3:{
    if(arbol!=NULL)
     {
      cout<<endl<<"las ojas son : ";
      postorden(arbol);
     }
   else
   {
    cout<<"el arbol no tiene elementos";
   }
   getch();
   break;
   }//fin case3
   case 4:{
    if(arbol!=NULL)
     {
      cout<<endl<<"en orden : ";
      enorden(arbol);
     }
   else
   {
    cout<<"el arbol no tiene elementos";
   }
   getch();
   break;
   }//fin case4
   case 5:{
    cout<<"  visualizacion del arbol "<<endl<<endl;
    if(arbol!=NULL)
      {
       verarbol(arbol,0);
      }
    else
      {
       cout<<"el arbol no tiene elementos";
      }
    getch();
    break;
   }//fin case5
   case 6:{
   int elem,r;
   if(arbol!=NULL)
     {
      cout<<"ingrese elemento a buscar: ";cin>>elem;
      r=buscar(arbol,elem);
      /*if(r==1)
         cout<<elem<<" encontrado";
      else
        cout<<elem<<" NO encontrado";
     */
           cout<<"elemento encontrado"<<endl;
           cout<<"se recorrieron:"<<r<<"elementos";
            }
   else
     {
      cout<<" el arbol no tiene elementos";
     }
   getch();
   break;
   }//fin case6
   case 7:{
   if(arbol!=NULL)
     {
      cout<<"el mayor elemento es: "<<buscarmayor(arbol);
     }
   else
     {
     cout<<"el arbol no tiene elementos";
     }
   getch();
   break;
   }//fin case7
   case 8:{
    if(arbol!=NULL)
     {
      cout<<"el menor elemento es: "<<buscarmenor(arbol);
     }
   else
     {
     cout<<"el arbol no tiene elementos";
     }
   getch();
   break;
   }//fin case8
   case 9:{
   int corte;
   if(arbol!=NULL)
     {
      cout<<"ingrese elemento de corte: ";cin>>corte;
      if(buscar(arbol,corte))
        {
          if(arbol->valor==corte)
      arbol=NULL;
          else
     podar(arbol,corte);
          cout<<"el arbol fue podado con exito";
        }
      else
         cout<<"elemento no esta en el arbol";
     }
   else
    {
     cout<<"el arbol no tiene elementos";
    }
    getch();
    break;
   }//fin case 9
   case 10:{
    if(arbol!=NULL)
      {
       arbol=NULL;
       cout<<"el arbol fue talado con exito";
      }
     else
      {
       cout<<"el arbol no tiene elementos";
      }
     getch();
     break;
    }
          //fin case 10
          case 11:
                subarbol=arbol->der;
                a=buscarmenor(subarbol);
                cout<<"menor de los mayores "<<a;
                getch();
                break;
  }//fin switch
  clrscr();
    }while(opc!= 0);
}//fin main.
/*************************** funciones **************************/
void inserta(ABB &arbol,int x)
{
 if(arbol==NULL)
   {
    arbol=new(struct nodo);
    arbol->valor=x;
    arbol->izq=NULL;
    arbol->der=NULL;
   }
 else
  {
   if(x<arbol->valor) inserta(arbol->izq,x);
   else
     if(x>arbol->valor) inserta(arbol->der,x);
  }
}
void preorden(ABB arbol)
{
 if(arbol!=NULL)
   {
    cout<<arbol->valor<<" ";
    preorden(arbol->izq);
    preorden(arbol->der);
   }
}
void enorden(ABB arbol)
{
 if(arbol!=NULL)
   {
    enorden(arbol->izq);
    cout<<arbol->valor<<" ";
    enorden(arbol->der);
   }
}
void postorden(ABB arbol)
{
 if(arbol!=NULL)
   {
    postorden(arbol->izq);
    postorden(arbol->der);
    if(arbol->der==NULL && arbol->izq==NULL)
    {cout<<arbol->valor<<" ";}
   }
}
void verarbol(ABB arbol, int nro)
{
 int i;
 if(arbol==NULL)return;
 verarbol(arbol->der,nro+1);
 for(i=0;i<nro;i++)
    cout<<" ";
    cout<<arbol->valor<<endl;
 verarbol(arbol->izq,nro+1);
}
int buscar(ABB arbol, int bus)
{
 ABB A1;
 A1=arbol;
 int i=0;
 while(A1!=NULL)
      {
       if(bus < A1->valor)
   {A1=A1->izq;
      i=i+1;}
       else
  if(bus > A1->valor)
   { A1= A1->der;
      i=i+1;
      }
   else
   return i;
       }
 return -1;
}
int buscarmenor(ABB arbol)
{
 int menor;
 while(arbol->izq!=NULL)
      arbol=arbol->izq;
 menor=arbol->valor;
 return menor;
}
int buscarmayor(ABB arbol)
{
 int mayor;
 while(arbol->der!=NULL)
      arbol=arbol->der;
 mayor=arbol->valor;
 return mayor;
}
void podar(ABB& A1,int corte)
{
 while(A1!=NULL)
 {
  if(corte<A1->valor)
  if(A1->izq->valor==corte)
    {
     A1->izq=NULL;
     break;
    }
  else
     A1=A1->izq;
 else
   if(A1->der->valor==corte)
     {
      A1->der=NULL;
      break;
     }
   else
   A1=A1->der;
 }//fin while
}

Continuando con Arbol binario (ABB), les comparto el siguiente post: Ver menor de menores, podar, talar, elemento de izquierda y derecha

Tienda de Productos digitales

Productos Digitales

Tenemos una tienda digital donde brindamos plantillas de pago para editar en Word, PowerPoint y Excel.

LIBROS

Contamos con varios libros para aprender las herramientas de Word, PowerPoint y Excel. Puedes comprarlo de forma digital en PDF o en físico a través de nuestra tienda en Amazon

Videos del Canal de Youtube

«…Encuentra plantillas bonitas, creativas y originales para tus presentaciones en PowerPoint…»

JANE DOE

«…Tecpro Digital es una plataforma que brinda plantillas editables en programas de Ofimática…»

JOHN DOE

«…Conoce las herramientas de Word, PowerPoint y Excel a través de los libros que se brinda en nuestra web…»

MARIA DOE

Síguenes en nuestras redes sociales

Deseas contactar con nosotros, puedes usar nuestros canales en las redes sociales para ver nuestro trabajo y los últimos tutoriales que vamos subiendo al sitio web.