Utilizando lenguaje orientado a objetos C++ con todas sus características (funciones, clases amigas, herencia simple y múltiple, sobre carga de funciones y operadores) realizar: • Un programa para simular un sistema de computadores de usuarios múltiples de la siguiente manera: cada usuario tiene una ID (identificación) única y desea realizar un número de transacciones en la computadora, Sin embargo, en un momento dado la computadora solo puede procesar una transacción. Cada línea de entrada representa un solo usuario y contiene el ID de éste seguido del tiempo de comienzo y una serie de enteros que representan la duración de cada una de las transacciones. La entrada se clasifica de manera creciente de acuerdo con el tiempo de inicio, y todas las duraciones y los tiempos están proporcionados en segundos. Supóngase que cada usuario solicita tiempo para una transacción hasta que se ha completado la transacción anterior y que la computadora procesa transacciones con la política de el primero en llegar, el primero en ser atendido. El programa deberá simular el sistema e imprimir un mensaje que contenga la ID del usuario y el tiempo en que comienza y termina una transacción. (El tiempo de espera es la cantidad de tiempo desde que se solicita la transacción hasta que ésta comienza). • Cómo se puede representar un polinomio de tres variables (x, y,z) por medio de una lista circular?. Cada nodo debe representar un término y contener las potencias de x, y, y z, así como el coeficiente de dicho término. Escribir funciones que haga lo siguiente: d) Sume dos polinomios de ese tipo. • Multiplique dos polinomios de ese tipo. Calcule la derivada parcial de un polinomio semejante con respecto a cualquiera de sus variables. 3. A Simular la actividad que realizan los trolebuses en la ciudad de Quito. Se desea saber el tiempo que se demora en salir de un terminal y llegar al otro y cuánto en una vuelta, la cantidad de pasajeros que recoge en una y otra parada, así como también los que se bajan, la cantidad de pasajeros que cada trole recoge en un día de trabajo, cuántas vueltas ha realizado cada trole, si se ha dañado algún trole en el día de trabajo, la cantidad de dinero que se recaudó por cada trole. • B Escriba un algoritmo para determinar si un árbol binario es: • estrictamente binario • completo • cuasi−completo • Escriba un programa que acepte un apuntador a un árbol de búsqueda binaria y elimine el elemento más pequeño del árbol. • Defina el árbol binario de fibonacci de orden n como sigue: Si n = 0 ó n = 1, el árbol consta de un solo nodo. Si n > 1, el árbol consta de una raíz, con el árbol de fibonacci de orden n−1 como subáarbol izquierdo y el árbol de fibonacci de orden n−2 como subárbol derecho. • Escriba una función que proporcione un apuntador al árbol binario de fibonacci de orden n. • Tal árbol es estrictamemte binario? • Cuál es el número de hojas en el árbol de fibonacci de orden n?. • Cuál es la profundidad en el árbol de fibonacci de orden n?.