CREACION DE UN ARBOL BINARIO
Enviado por sharongc24 • 18 de Abril de 2018 • Trabajo • 306 Palabras (2 Páginas) • 264 Visitas
Creación de un árbol binario
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NULL 0
//Programa que carga los nodos de un árbol binario en memoria.
struct treenodo
{
struct treenodo *izqptr; //puntero al nodo izquierdo
char dato[40]; //dato del nodo
struct treenodo *derptr;
}; // puntero al nodo derecho
void crear(treenodo *nodo) //crea un Árbol binario
{
char resp[1];
clrscr();
cout<< "Introduzca el dato ";
gets (nodo->dato);
cout <<"Hay nodos a la Izquierda, introduzca S/N ";
gets(resp);
if (strcmp(resp, "S")= = 0)
{
nodo->izqptr= new (treenodo);
crear(nodo->izqptr);
}
else
nodo->izqptr=NULL;
cout <<"Hay nodos a la Derecha, introduzca S/N ";
gets(resp);
if (strcmp(resp, "S")= = 0)
{
nodo->derptr = new (treenodo);
crear(nodo->derptr);
}
else
nodo->derptr =NULL;
return;
}
void main()
{
treenodo *nodo; // puntero al nodo
nodo= new treenodo;
crear (nodo);
getch()
}
ALGORITMOS NO RECURSIVOS
1. RECORRIDO PREORDEN
INICIO
PREORDEN(RAIZ)
LIMPIAR(PILA)
P RAIZ
MIENTRAS (P!=NULL) REPETIR
PROCESAR INFO(P)
SI DER(P)!= NULL ENTONCES
METER(PILA, DER(P))
FIN-SI
SI IZQ(P)!= NULL ENTONCES
P IZQ(P)
SINO
P SACAR(PILA)
FIN-MIENTRAS
FIN
2. RECORRIDO INORDEN
INICIO
INORDEN(RAIZ)
LIMPIAR(PILA)
P RAIZ
REPETIR
MIENTRAS (P!=NULL) REPETIR
METER (PILA,P)
P IZQ(P)
FIN-MIENTRAS
SI NOT(PILA VACIA) ENTONCES
P SACAR(PILA)
PROCESAR INFO(P)
P DER(P)
FIN-SI
HASTA QUE (P=NULL) Y (PILAVACIA)
FIN
ALGORITMOS DE RECORRIDOS EN ARBOLES BINARIOS RECURSIVOS
RECORRIDO PREORDEN
PREORDEN (NODO)
SI ( NODO != NULO) ENTONCES
IMPRIMIR NODOSΛ.INFO
PREORDEN (NODO Λ.IZQ)
PREORDEN (NODO Λ.DER)
FINSI
RECORRIDO INORDEN
ALGORITMO:
...