Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 1 votos - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Algortimos]Procedimiento Inserta Nodo por Dos Campos
Autor Mensaje
Teteban Sin conexión
Campeon del cubo Rubik
Kill'em with kindness
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 157
Agradecimientos dados: 12
Agradecimientos: 19 en 9 posts
Registro en: Feb 2009
Facebook Google+ Twitter YouTube
Mensaje: #1
[Algortimos]Procedimiento Inserta Nodo por Dos Campos Dudas y recomendaciones Algoritmos y Estructuras de Datos
Bueno, eso. Alguno tiene una imagen o un copy-past del codigo en pascal o en diagrama de este procedimiento de la cátedra?
Lo necesitaria para antes del sábado, si me hacen la gauchada
Gracias che =)

Tebanquito
08-12-2010 20:39
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Anirus Sin conexión
Super Moderador
Sin estado :)
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.162
Agradecimientos dados: 77
Agradecimientos: 194 en 69 posts
Registro en: Nov 2009
Mensaje: #2
RE: [Algortimos]Procedimiento Inserta Nodo por Dos Campos
Es lo mismo que con un solo campo, solo que le tenés que agregar una condición más para el otro. Quizá viste otro insertaNodo, esta es la versión de Alejandro Frankel , esta buena, no tiene ifs anidados.


procedure InsertaNodo(var lista:tlista;info:tinfo)
var nuevo,ant,aux:tlista;
begin
new(nuevo);
nuevo^.info:=info;
aux:=lista;
while( (aux<>nil) AND (aux^.info.campo1<info.campo1) AND (aux^.info.campo2<info.campo2) ) do
begin
ant:=aux;
aux:=aux^.sig
end;


/*el siguiente al nuevo nodo siempre va a ser aux, por mas que este sea NIL*/
nuevo^.sig:=aux;


/*Si aux es igual a lista, es decir, es el primer nodo o la lista esta vacía, entonces el nuevo nodo va a ir primero, sino va después de lo que esté antes de aux.*/

if(aux=lista) then lista:=nuevo else ant^.sig:=nuevo;

end.





Yo también doy el final el sábado.
(Este mensaje fue modificado por última vez en: 08-12-2010 20:59 por Anirus.)
08-12-2010 20:53
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Teteban Sin conexión
Campeon del cubo Rubik
Kill'em with kindness
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 157
Agradecimientos dados: 12
Agradecimientos: 19 en 9 posts
Registro en: Feb 2009
Facebook Google+ Twitter YouTube
Mensaje: #3
RE: [Algortimos]Procedimiento Inserta Nodo por Dos Campos
(08-12-2010 20:53)Anirus escribió:  Es lo mismo que con un solo campo, solo que le tenés que agregar una condición más para el otro. Quizá viste otro insertaNodo, esta es la versión de Alejandro Frankel , esta buena, no tiene ifs anidados.


procedure InsertaNodo(var lista:tlista;info:tinfo)
var nuevo,ant,aux:tlista;
begin
new(nuevo);
nuevo^.info:=info;
aux:=lista;
while( (aux<>nil) AND (aux^.info.campo1<info.campo1) AND (aux^.info.campo2<info.campo2) ) do begin
ant:=aux;
aux:=aux^.sig
end;
nuevo^.sig:=aux;
if(aux=lista) then lista:=nuevo else ant^.sig:=nuevo;
end.





Yo también doy el final el sábado.

Sisis uso la de frankel yo tambien, es genial =P
bueno ahora me las "ingenio" y de ultima lo subo a ver si le sirve a alguien
gracias =D

Tebanquito
08-12-2010 20:57
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Teteban Sin conexión
Campeon del cubo Rubik
Kill'em with kindness
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 157
Agradecimientos dados: 12
Agradecimientos: 19 en 9 posts
Registro en: Feb 2009
Facebook Google+ Twitter YouTube
Mensaje: #4
RE: [Algortimos]Procedimiento Inserta Nodo por Dos Campos
che,una cosa:
puede ser q en tu codigo

procedure InsertaNodo(var lista:tlista;info:tinfo)
var nuevo,ant,aux:tlista;
begin
new(nuevo);
nuevo^.info:=info;
aux:=lista;
while( (aux<>nil) AND (aux^.info.campo1<info.campo1) AND (aux^.info.campo2<info.campo2) ) do begin
ant:=aux;
aux:=aux^.sig
end;
nuevo^.sig:=aux;
if(aux=lista) then lista:=nuevo else ant^.sig:=nuevo;
end.



la parte de

while( (aux<>nil) AND (aux^.info.campo1<info.campo1) AND (aux^.info.campo2<info.campo2) ) do begin



puede ser que sea??
while( (aux<>nil) AND ((aux^.info.campo1<info.campo1) OR (aux^.info.campo1=info.campo1) )AND (aux^.info.campo2<info.campo2) ) do begin[/code]


es decir que cuando agregue se fije en el priemr campo qeu sea menor O IGUAL

porque hice una prueba de escritorio y de esa forma funcionaria si por ejemplo tenemos una lista con nodos de dos campos y si estos son

1 | 1
1 | 4
2 | 2

y quiero agregar uno que sea 1|3
si es con mayor lo agregaria atras del 1|1 pero si fuera mayor igual lo agregaria bien

espero haber sido claro jje

Tebanquito
08-12-2010 21:21
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Anirus Sin conexión
Super Moderador
Sin estado :)
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.162
Agradecimientos dados: 77
Agradecimientos: 194 en 69 posts
Registro en: Nov 2009
Mensaje: #5
RE: [Algortimos]Procedimiento Inserta Nodo por Dos Campos
Qué bueno que te diste cuenta, yo estaba convencida de que era así y me estaba acordando mal xD, igual me parece que ahora están mal los paréntesis, porque en cuanto el segundo campo fuera menor, no se cumpliria la condicion, sin importar si el primero es mayor o no.
1 | 1
1 | 2
1 | 3
1 | 4
2 | 3

Si quiero agregar 2|2 al pasar por el tercer nodo, hay una parte que no se cumple:
while( (aux<>nil) AND ((aux^.info.campo1<info.campo1) OR (aux^.info.campo1=info.campo1) )AND (aux^.info.campo2<info.campo2) )
Entonces queda while( V & (V v F) & F) y se sale del ciclo y lo pondría así:

1 | 1
1 | 2
2 | 2
1 | 3
1 | 4
2 | 3




Me parece que era así, que solo se fije lo del segundo campo cuando el 1ro es igual:


while( (aux<>nil) AND ( (aux^.info.campo1<info.campo1) OR ((aux^.info.campo1=info.campo1)AND (aux^.info.campo2<info.campo2)) ) )do begin


(Este mensaje fue modificado por última vez en: 08-12-2010 23:08 por Anirus.)
08-12-2010 22:56
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Teteban Sin conexión
Campeon del cubo Rubik
Kill'em with kindness
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 157
Agradecimientos dados: 12
Agradecimientos: 19 en 9 posts
Registro en: Feb 2009
Facebook Google+ Twitter YouTube
Mensaje: #6
RE: [Algortimos]Procedimiento Inserta Nodo por Dos Campos
GENIAL
lo estoy probrando con distintos datos andan todos! te mereces un punto mas en la reputacion =D

Tebanquito
09-12-2010 01:45
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Anirus Sin conexión
Super Moderador
Sin estado :)
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.162
Agradecimientos dados: 77
Agradecimientos: 194 en 69 posts
Registro en: Nov 2009
Mensaje: #7
RE: [Algortimos]Procedimiento Inserta Nodo por Dos Campos
(09-12-2010 01:45)Teteban escribió:  GENIAL
lo estoy probrando con distintos datos andan todos! te mereces un punto mas en la reputacion =D

O uno menos por mandarme una burrada en la primera respuesta xD por suerte revisás las cosas.
(Este mensaje fue modificado por última vez en: 09-12-2010 02:27 por Anirus.)
09-12-2010 02:20
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Anirus Sin conexión
Super Moderador
Sin estado :)
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.162
Agradecimientos dados: 77
Agradecimientos: 194 en 69 posts
Registro en: Nov 2009
Mensaje: #8
RE: [Algortimos]Procedimiento Inserta Nodo por Dos Campos
(08-12-2010 21:02)Anirus escribió:  Para el final del sabado pasado había (o al menos lo resolví así) que ordenar una lista por el resultado de la suma de dos de sus campos, es lo mismo pero haciendo (aux^.info.campo1 + aux^.info.campo2)< (info.campo1 + info.campo2)
(solo que iba > porque era descendiente)

No intentes resolver el final pensando en eso que lei mal esa parte del enunciado y pensé que en la lista iba la suma de los extranjeros en vez de los del 2009.
09-12-2010 05:05
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.