Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En esta funcin se crea un nodo nuevo para ser utilizado en las otras funciones, en
el desarrollo, se le da al nodo el valor que ingres el usuario y dos punteros que se
mandan a NULL, uno a la derecha y otro a la izquierda.
pnodo insert(int valor, pnodo rbol):
En esta funcin insert , que se ingresa como argumentos el valor que se desea insertar,
y el rbol determinado a cual se agregar, primero se llama a la funcin creanodo para
crea el nodo del elemento, luego siempre y cuando el rbol exista se ingresara al ciclo
while sin condiciones, ya que en el caso contrario se ingresara el nuevo nodo
inmediatamente como raz. En el While se analizara si el elemento a ingresar ser a la
derecha o a la izquierda de su antecesor, en el caso que este los dos ocupados se
cambiar el valor de la variable rbol a la direccin que le corresponda
respectivamente, cuando se agregue el nuevo elemento a su posicin, se saldr del ciclo
con un break para que finalmente se retorne el rbol con los respectivos cambios.
Ejemplo:
9
5
12
Retornando:
9->5->6->12
12
La funcin mostrar_arbol nos permite ver como estn distribuidos en forma Pre
orden travesal los elementos del rbol que se ingresa como argumento, tambin de
una manera reiterativa como la funcin anterior. Se irn mostrando en la pantalla
cada elemento desde la izquierda hacia la derecha del rbol( a partir de la raz),
cuando llegue al siguiente del ltimo elemento de la ramificacin, el cual sera NULL
, la funcin retornar false, por lo tanto vuelve al nodo anterior pero recorriendo
ahora su derecha, y as reiteradamente hasta que se recorra por completo.
Ejemplo:
Si el rbol que se ingresa como argumento es el de los ejemplos anteriores, en la
imprimira:
Enpantalla
el primerse
paso
rbol =9, se dirige hacia su izquierda
rbol = 5, se dirige hacia su izquierda
rbol=NULL, se vuelve al nodo 5 pero recorriendo su derecha,
donde tambin es NULL, por lo tanto se vuelve a la reiteracin
de la derecha del 9
rbol=12, donde su puntero
tanto de la derecha como la izquierda es NULL.
Por lo tanto se imprime en la pantalla:
9->5->12
Int men()
La funcion extra "menu" imprime texto en pantalla y hace el usuario escoger una de
las opciones mostradas, si el valor ingresado por el usuario no corresponde a alguna
de las opciones, se le pedir volver a ingresar un valor. Al final retornara la opcin
escogida (ya validada anteriormente en un bucle).
int main()
En el main se crear un rbol predeterminado, este se compondr por 10
elementos(los cuales sern ingresados por el usuario) con dos punteros cada uno,
uno hacia la derecha y otro a la izquierda, luego se le mostrara al usuario un men
con las distintas funciones(insertar o buscar), de las cuales deber escoger una
para implementar hacia el rbol o cerrar el programa.
Preguna 2.i
array<int, 10>crear()
Funcin que crea un array de 10 elementos y lo llena con un valor por defecto. Este
valor servir posteriormente para verificar que un espacio del array este vaco.
Esta funcin siempre retornar el array {-99, -99, -99, -99, -99, -99, -99,
-99, -99, -99}.
array<int, 10>insert(array<int, 10>arbol, int valor)
Esta funcin recibe el rbol y el valor a insertar en l. Se determina en que ndice
debe insertarse el valor, verificando que esto sea posible, luego se procede a
determinar los ndices que se deben recorrer, guardndolos en un vector creado
previamente y finalmente se procede a recorrer estos ndices, mientras se van
ordenando como un max heap.
Adems se determina el tiempo de ejecucin de la funcin y se muestra en pantalla.
Ejemplo: Si se tiene el array {23, 14, 21, -99, -99, -99, -99, -99, -99, -99} y
se inserta el valor 31, se retornar el nuevo array {31, 23, 21, 14, -99, -99,
-99, -99, -99, -99}.
int menu(int numero)
Funcin extra que pide al usuario ingresar valores para insertar. Valida que el
nmero ingresado sea distinto al utilizado para espacios vacos y se retorna un valor
valido. La variable "numero" solo sirve para mejorar la esttica del programa.
Ejemplo: Si se ingresa como argumento el nmero 3, se imprimir en
pantalla:
Ingrese valor numero 3 a insertar (distinto de -99):
Si el usuario ingresa -99, se le volver a pedir que ingrese un nmero. Si
el usuario ingresa el valor 45, la funcin retornar 45.
Preguna 2.ii
void main()
En el main de este programa se realizar todo sin el uso de funciones externas. En
primer lugar se define una variable para medir el tiempo de ejecucin del
programa, luego se inicializa un vector llamado myvector, se declara una variable
de tipo entero y se crea un bucle con el fin de ingresar valores de tipo entero al
vector. Una vez que el elemento se encuentre en este, se usar la funcin
make_heap para crear el rbol (Max Heap )con los valores del vector, el cual ingresa
cada elemento al rbol de izquierda a derecha, junto a eso a medida que se integra,
se compara con sus ancestros para obtener su posicin correspondiente. Una vez
finalizado el rbol, la variable de tiempo dejara de funcionar, dando a mostrar as el
tiempo de ejecucin del programa (impreso en pantalla), siguiendo con otro bucle
para mostrar los elementos del vector. Se ha usado una funcin system(pause)
para detener la pantalla, con el propsito de visualizar el resultado sin que esta se
cierre.
24->23->20->21->22->16->19->15>18->17->