Anda di halaman 1dari 3

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES


DEPARTAMENTO DE COMPUTACIÓN Y SIMULACIÓN DE SISTEMAS
ESTRUCTURAS DE DATOS II
LABORATORIO N°1. CREACION DE UN ÁRBOL BINARIO
____________________________________________________________________________________
Nombre de la Asignatura: Estructura de Datos II
Módulo 1: Técnicas De Estructuración De Datos No Lineales
Capítulo 1: Estructura De Datos Tipo Árbol
Docente Responsable: Doris Cueto
Integrantes: Dufond, Armando.
Carrillo, Patricia.
Peña, Elizabeth.
Objetivo:
 Aplicar los conceptos de las Estructuras de Datos dinámicas no lineales tipo árboles.
Recursos: Plataforma virtuales de apoyo académico, lápiz, borrador, papel, marcadores y tablero
Instrucciones:
 El trabajo debe ser entregado a través de la plataforma moodle.
 Resolver en grupo de 2 estudiantes.
Enunciado: Copiar, Ejecutar el siguiente programa en CodeBlocks. Tome de referencia el árbol de la fig.1
y realice la prueba de escritorio:
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#define NULL 0
using namespace std; // reconoce el cin y cout
//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();
system("cls");
cout<< "Entre el dato ";
gets (nodo->dato);
cout <<"Hay nodos a la Izquierda de " << nodo -> dato << " entre 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 de " << nodo -> dato << " entre S/N ";
gets(resp);
if (strcmp(resp, "S")== 0) {
nodo->derptr = new (treenodo);
crear(nodo->derptr); }
else
nodo->derptr= NULL;
return;
}
main(){
treenodo *nodo; // puntero al nodo
nodo= new treenodo;
crear (nodo);
getch();
}
Fig.1

La prueba de escritorio debe ser presentada utilizando el árbol anterior y el siguiente cuadro:

Dirección del Contenido de la Contenido de la


nodo creado variable (resp) variable (dato)
10 S 4
20 S 2
30 N 1
40 N/N 3
50 N/S 8
40 N/N 9

Observación: Utilice las siguientes direcciones de memoria para cada nodo:


dato dirección
4 10
2 20
1 30
3 40
8 50
9 40

Sobre el Laboratorio no.1 conteste:

1. Mencione el tipo de dato utilizado en el programa para representar un nodo.


2. Identifique las variables tipo punteros utilizada por el programa.
3. A qué tipo de datos apuntan las variables punteros en el programa.
4. identifique el segmento del programa donde se declara el nodo.
5. El programa utiliza Estructura de Datos Dinámica o Estática.
6. Instrucción Utilizada en el programa para asignar una dirección de memoria al
nodo.
7. Identifique el segmento de programa donde se aplica la recursividad.
8. Qué tipo de Recursividad se está utilizando
9. Cuál es la función de este programa.
10. Muestre el símbolo que me permite desplazarme por los campos que forma el nodo.

DESARROLLO
1. El dato utilizado para representar los nodos es carácter.

2. Las variables tipo puntero que utiliza el programa son :


struct treenodo *izqptr;
struct treenodo *derptr; };

3. Los datos que apuntan las variables punteros en el programa son :


Struct

4. el segmento del programa donde se declara el nodo es :

struct treenodo {
struct treenodo *izqptr;
char dato[40];
struct treenodo *derptr; };
void crear(treenodo *nodo)
{

5. El programa utiliza estructura de Datos Dinámica.

6. gets (nodo->dato);

7. El segmento de programa donde se aplica recursividad es :

main(){
treenodo *nodo;
nodo= new treenodo;
crear (nodo);
getch();
}

8. la recursividad que usa el programa es indirecta.

9. la función del programa es crea un Árbol binario.

10. el símbolo que me permite desplazarme por los campos que forma el nodo es: ->

Anda mungkin juga menyukai