La Problemática Del Uso Racionalizado Del Agua
AFRODITAa124 de Octubre de 2013
1.085 Palabras (5 Páginas)340 Visitas
Aclaración :
“:” = Del tipo
“->” = Es similar a Objeto.metodo
1. Escriba un programa que dada una lista que contiene números, la divida en dos listas independientes. Una formada por los números positivos y otra formada por los números negativos.
Inicio programa
//Diagrama de tipos (TDA)
TDato:int
TLista:Registro
cab:Puntero
actual:Puntero
Fin Registro
Puntero->Nodo //Puntero a nodo
Nodo:Registro
info:Tdato
sig:Puntero
Fin Registro
Variables:
LPos:TLista // Lista de Positivos
LNeg:TLista // Lista de negativos
Procedimiento(L:TLista)
Si L->cab = null entonces
mensaje ("La lista esta vacía")
Si no
// si no es null trato el 1° elemento por separado y luego recorro la lista.
L->actual = L->cab //Igualo el puntero actual al puntero cab para asegurarme
el principio de la lista.
//Asumo que hay espacio en memoria para crear las dos listas:
Lcrear(LNeg) //crear lista vacia
Lcrear(LPos) //crear lista vacia
Si L->actual->info < 0 entonces
LinsertarFin(LNeg , L->actual->info) //Crear Nodo y cargar el dato
Si no
//Considero al cero como numero +
LinsertarFin(LPos , L->actual->info) //Crear Nodo y cargar el dato
Fin si
Mientras L->actual->sig <> null hacer
L->actual = L->actual->sig
Si L->actual->info < 0 entonces
LinsertarFin(LNeg , L->actual->info) //Crear Nodo y cargar el dato
Si no
//Considero al cero como numero +
LinsertarFin(LPos , L->actual->info) //Crear Nodo y cargar el dato
Fin si
Fin Mientras
Fin Si
Lcrear(LNeg:TLista) //Crea Listas.
LNeg->cab = NULL
Fin Lcrear
LinsertarFin(L:TLista , D:Tdato) //Esta funcion es la que Crea los dos listas nuevas.
N*Nodo
AUX*Nodo
CrearNodo(N, D)
Si L->cab = NULL //La lista esta vacia:
L->cab = N
Si no
AUX = L->cab
Mientras AUX->sig <> NULL hacer
AUX = AUX->sig
Fin Mientras
AUX->sig = N
Fin Si
Fin LinsertarFin
CrearNodo(N*Nodo, D:Tdato) //Crea un nodo y tambien lo inicializa con un dato.
N->info = D
N->sig = NULL
Fin CrearNodo
/*
Esta funcion no la uso:
TengoEspacio() int //Averiguo si hay espacio en memoria para crear la lista
Le paso la estructura de la lista a crear
N*Nodo //Puntero a nodo "Nodo"
int
...