Necesito ayuda con ejercicio de Estructura de datos !!!

#1
Hola bakunos, ojala me puedan ayudar a hacer este ejercicio desde cero. De verdad les agradeceria mucho:

Se tiene una cola con los postulantes de un cargo de los cuales se conoce numero de legajo, apellido, titulo y antiguedad en años. Realizar una funcion que elimine de la estructura a todos aquellos postulantes que tengan una antiguedad inferior a una dad sin alterar el orden de los restantes postulantes. No utilizar colas auxiliares.
 
#2
Hola bakunos, ojala me puedan ayudar a hacer este ejercicio desde cero. De verdad les agradeceria mucho:

Se tiene una cola con los postulantes de un cargo de los cuales se conoce numero de legajo, apellido, titulo y antiguedad en años. Realizar una funcion que elimine de la estructura a todos aquellos postulantes que tengan una antiguedad inferior a una dad sin alterar el orden de los restantes postulantes. No utilizar colas auxiliares.
Pues aquí están unas POSTULANTES con muy buenas COLAS.

 

vikernes666

Bovino adicto
#3
busca la función push up y pop para hacerlo
simple guardas normal ya sea como pila o cola y para borrarlo usas dichas funciones. obvio para el comparado aplica una estructura IF anidada.
de lo contrario tardarias mas y en mayor numero de lineas
 

atxy2k

Bovino adicto
#4
ArrayList de objetos

Me suena algo asi como a un ArrayList de objetos, en lo personal programó en Java, creo que así como planteas más o menos el problema seria hacer una clase con las características de la persona, entre ellas tenemos la antiguedad, y posteriormente recorrer el ArrayList buscando un SI lista.get(i).getAntiguedad<edad entonces lista.remove(i) ; no se si es lo que estas buscando
 

maggot-8

Bovino maduro
#5
mmm bueno, como es estructura de datos pienso que estaras usando o tienes que usar listas, colas, pilas, ese problema lo resuelves con listas enlazadas, no se si sepas crear nodos, si no sabes, investiga, quiza te suene o ya lo hayas visto, ex:

Nodo nuevoNodo = new Nodo();

y si realizas una lista con nodos, donde cada nodo sea como un registro de informacion que contenga los dato que necesitas, solo seria recorrer la lista con dos nodos, uno siempre va a ir atras de otro, cuando el que va adelante encuentre al nodo que cumpla la condicion para eliminarse se pasara al que esta adelante de este para enlazar el nodo de atras con el de adelante, elminando los apuntadores y el nodo que no se necesitan; graficamente es esto:

Nodo A, B, C; eliminaremos el nodo B
A -> B -> C; como vemos, si posicionamos nuestro nodo en A, tenemos que A.next() = B, osea que A apunta a B o el siguiente de A es B

ahora, si adelantamos el nodo que va en A vemos que se topa con B, que es el que se va a eliminar, para recorrerlo un lugar y recorrer el otro tambien seria algo como:

nodoRecorrer2 = nodoRecorrer1; //el nodo dos estaba atras del uno, y ahora estan en el mismo lugar
nodoRecorrer1 = nodoRecorrer1.next; //adelanamos el nodo 1

y como dije anteriormente, el nodoRecorrer1 esta en B, asi que cuando se detecte esto ay que recorrer solo el nodo1 una posicion

nodoRecorrer1 = nodoRecorrer1.next;

y realizamos el enlaze de los dos nodos borrando el enlaze anterior, de esta forma

nodoRecorrer2.next = null;
nodoRecorrer2.next = nodoRecorrer1;//recordemos que el 2 esta en A y el uno en C, asi que el siguiente nodo de A es C

por ultimo solo se borra B y queda la lista asi:

A -> B

ojala te sirva de ayuda la informacion, aunque sea algo tarde :D
 
Arriba