Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Practica 66. Salarios
- El RFC, nombre y salario de cada uno de los empleados de una fabrica son almacenados
- en un árbol binario de búsqueda con base en el salario, decir cual es el empleado que más gana.
- */
- tipos
- Empleado: registro {
- RFC: cadena
- nombre: cadena
- salario: numerico
- izquierdo: numerico
- derecho: numerico
- }
- var
- arbol: vector [*] Empleado
- raiz, libre, temp, actual, padre, i, opcion: numerico
- RFC, nombre: cadena
- salario: numerico
- cuantos: numerico
- encontrado: logico
- inicio
- cls()
- raiz = 0
- libre = 1
- imprimir ("¿Cuantos empleados quieres registrar?")
- leer (cuantos)
- dim (arbol, cuantos)
- // Inicializar la lista para el manejo de nodos libres
- desde i=1 hasta cuantos-1 {
- arbol[i].izquierdo = i + 1
- }
- arbol[cuantos].izquierdo = 0
- repetir
- imprimir("\nMenú:")
- imprimir("\n1. Insertar")
- imprimir("\n2. Mostrar empleado que más gana")
- imprimir("\n3. Salir")
- imprimir("\nElija una opción: ")
- leer(opcion)
- eval {
- caso (opcion ==1)
- // Insertar
- si (libre == 0) {
- imprimir("\nEl árbol está lleno.")
- sino
- temp = libre
- libre = arbol[libre].izquierdo
- encontrado = FALSE
- imprimir("\nIntroduce el RFC del empleado: ")
- leer(RFC)
- imprimir("\nIntroduce el nombre del empleado: ")
- leer(nombre)
- imprimir("\nIntroduce el salario del empleado: ")
- leer(salario)
- arbol[temp].RFC = RFC
- arbol[temp].nombre = nombre
- arbol[temp].salario = salario
- arbol[temp].izquierdo = 0
- arbol[temp].derecho = 0
- si (raiz == 0) {
- raiz = temp
- sino
- actual = raiz
- repetir
- padre = actual
- si (salario < arbol[actual].salario) {
- actual = arbol[actual].izquierdo
- si (actual == 0) {
- arbol[padre].izquierdo = temp
- encontrado = TRUE
- }
- sino
- actual = arbol[actual].derecho
- si (actual == 0) {
- arbol[padre].derecho = temp
- encontrado = TRUE
- }
- }
- hasta (encontrado)
- }
- }
- //romper
- caso (opcion ==2)
- // Mostrar empleado que más gana
- si (raiz == 0) {
- imprimir("\nEl árbol está vacío.")
- sino
- actual = raiz
- mientras (arbol[actual].derecho <> 0) {
- actual = arbol[actual].derecho
- }
- imprimir("\n\nEmpleado que más gana:")
- imprimir("\nRFC: ", arbol[actual].RFC)
- imprimir("\nNombre: ", arbol[actual].nombre)
- imprimir("\nSalario: ", arbol[actual].salario)
- }
- //romper
- caso (opcion ==3)
- imprimir("\nSaliendo del programa.")
- //romper
- sino
- imprimir("\nOpción no válida. Por favor, elija una opción válida.")
- }
- hasta (opcion == 3)
- fin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement