informe tecnico u 4-victor uex

8
1 Maestro: Niels Henrik Aranda Cuevas Materia: Estructura De Datos Alumno: Victor Manuel Uex Mis Carrera: Ingeniería En Sistemas Computacionales Tema: Informe Técnico Unidad: 4 Semestre: 3 Aula: J-4 Grupo: B O

Upload: victoruex

Post on 10-Aug-2015

23 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Informe tecnico u 4-victor uex

1

Maestro: Niels Henrik Aranda Cuevas

Materia: Estructura De Datos

Alumno: Victor Manuel Uex Mis

Carrera: Ingeniería En Sistemas Computacionales

Tema: Informe Técnico

Unidad: 4

Semestre: 3

Aula: J-4

Grupo: B

O

Page 2: Informe tecnico u 4-victor uex

2

INTRODUCCION:

Los árboles son formas de manejo de datos de apuntadores para estar

ubicando información de los datos siempre y cuando manteniendo la jerarquía

de los datos, como su nombre de árbol es una serie de directorios de datos

donde se almacena información y podemos realizar recorridos de ciertas

formas para poder localizar un elemento ya que se pueden definir en ramas y

cada rama es un camino que podemos seguir para llegar a la información.

PROGRAMA DONDE SE EMPLEA UN ARBOL.

#include <iostream>

#include <stdlib.h>

#include <conio.h>

#define maxpila 100

using namespace std;

struct nodo

{

int info;

struct nodo *llink;

struct nodo *rlink;

}*raiz;

struct PILA{

int tope;

struct nodo *cont[maxpila];

};

void limpiarpila(struct PILA *pila) {

pila->tope=0;

Page 3: Informe tecnico u 4-victor uex

3

}

bool pilavacia (struct PILA *pila){

bool valor;

if (pila->tope==0) valor=true;

else valor = false;

return valor;

}

bool pilallena (struct PILA *pila){

bool valor;

if (pila->tope==maxpila) valor=true;

else valor = false;

return valor;

}

void meterpila(struct PILA *pila, struct nodo *p) {

if (pilallena (pila) == false){

pila->tope=pila->tope+1;

pila->cont[pila->tope]=p;

}

else cout << "\nERROR: No se puede insertar en la pila, ya que esta llena";

}

void sacarpila(struct PILA *pila, struct nodo **q){

if (pilavacia(pila)==false){

Page 4: Informe tecnico u 4-victor uex

4

*q=pila->cont[pila- >tope];

pila->tope--;

}

else cout << "\nERROR: No se puede sacar de la pila, ya que esta vacia";

}

void creararbol(){

struct nodo *p, *q, *r;

int n, i;

cout << "Cuantos nodos va a tener el arbol?";

cin >> n;

raiz = (struct nodo *)malloc(sizeof(struct nodo));

cout << "Por favor digite la info del nodo raiz del arbol: ";

cin >> raiz->info;

raiz->llink = NULL;

raiz->rlink = NULL;

for (i=2;i<=n;i++){

p = (struct nodo *) malloc(sizeof(struct nodo));

cout << "Por favor digite la info del nodo " << i << " del arbol: ";

cin >> p->info;

p->llink = NULL;

p->rlink = NULL;

q=raiz;

while (q!=NULL){

Page 5: Informe tecnico u 4-victor uex

5

r=q;

if (p->info > q->info) q=q->rlink;

else q=q->llink;

}

if (p->info > r->info) r->rlink=p;

else r->llink=p;

}

}

void recorrerprofDerecha(){

struct PILA pila;

struct nodo *p;

int cont=0;

limpiarpila(&pila);

meterpila (&pila, raiz);

cout << "\n\nLos datos del arbol recorrido en profundidad son: \n";

while (pilavacia(&pila)==false){

sacarpila (&pila,&p);

cout << endl << p->info;

if (p->rlink != NULL) {

meterpila (&pila, p->rlink);

cont++;

Page 6: Informe tecnico u 4-victor uex

6

}

}

cout << "\n\nLos datos del arbol insertados a la derecha son: \n"<<cont;

}

void recorrerprofIzquierda(){

struct PILA pila;

struct nodo *p;

int cont=0;

limpiarpila(&pila);

meterpila (&pila, raiz);

cout << "\n\nLos datos del arbol recorrido en profundidad son: \n";

while (pilavacia(&pila)==false){

sacarpila (&pila,&p);

cout << endl << p->info;

if (p->llink != NULL){

meterpila (&pila, p->llink);

cont++;

Page 7: Informe tecnico u 4-victor uex

7

}

}

cout << "\n\nLos datos del arbol insertados a la izquierda son: \n"<<cont;

}

int main(void)

{

creararbol();

recorrerprofDerecha();

recorrerprofIzquierda();

getch();

return 0;

}

DESCRIPCION DEL PROGRAMA:

El programa anterior es un poco complejo ya que tiene muchas partes de

código pero lo principal que realiza, es leer varios valores donde se almacena

una gran cantidad de información, y lo que va realizar es ir transformando las

ramas del árbol dependiendo la cantidad de información que vamos a estar

ingresando, también manejando datos de pila y los datos de la cola.

Page 8: Informe tecnico u 4-victor uex

8

CONCLUSION:

Como conclusión nosotros entendimos esta forma de manejo de datos de

varias maneras y también a utilizarlos mediante los métodos anteriores

vistos y que van a ser de gran importancia en nuestra formación

profesional, Como conclusión tenemos que los árboles son algo

parecido a los nodos y lo que hacen es realizar la Administración de

grupos de nodos que van a tener una jerarquía de datos y apuntadores

donde se maneja información.