Anda di halaman 1dari 6

Proyecto de Estructura de Datos.

Ing. Juan Carlos Cedeo.

Tema:

Implementar una lista enlazada de datos enteros con las funciones bsicas
y adicionar las siguientes:

Que calcule el mayo de los datos e indique la posicin en q se encuentra.

Que calcule el dato mnimo y cuente la cantidad de veces q se repita.

Que sume los datos de una lista recursivamente.

Que sume los datos pares de una lista recursivamente.

Que visualice los datos pares de una lista recursivamente.

Que muestre los nmeros primos.

Que ordene los datos de la lista.

Que verifique q esta ordenada.

Que invierta la lista.

Que busque un dato en la lista recursivamente.

Que elimine un dato recursivamente.

Que duplique los datos y los almacene en otra lista.

Lenguaje de Programacin a utilizar: C#.


En forma escrita detallare los pasos que utilizare para realizar el proyecto.

Crear un men con las opciones dadas en el proyecto.


Creare una clase publica y una cantidad de constructores
equivalentes a las peticiones hechas en el problema donde se
desarrollaran las operaciones matemticas de orden y eliminacin
respectivamente Todos los constructores son pblicos- Luego al
crear los objetos tendr tantos objetos como listas enlazadas. Pero
para el proyecto trabajaremos con uno solo.
Declarare dos variables de tipo entero, una para guardar el numero
(dato) y la otra para guardar la posicin en la que el usuario desee
(en caso de querer insertar en una posicin que no se puede se
imprime un mensaje haciendo la aclaracin).
Declaro un puntero que tendr la direccin de memoria de la
variable que ha guardado el nmero ingresado por el teclado. El
cual me servir para mandarlo como parmetro a las funciones de
ingreso de cualquier tipo.
A continuacin un desarrollo general de cmo serian la funciones:

1. Calcule el mayor de los datos e indique su posicin en la lista

Asumiendo q la lista tine una cantidad de datos considerables:

Funcin q te obtiene el mayor de los datos, declaras el tipo de dato del


valor de retorno de la funcin, el nombre de la funcin y los parmetros
de la misma... en esta funcin le pasoel arreglo de datos para recorrerlo y
el tamao del arreglo en este caso la variable n
int obtenerMayorLista (int arreglo[n], int n) {

int num = 0; // declaro esta variable para asignarle el mayor numero


del arreglo

// Recorro el arreglo de datos

for (int i=0; i<n; i++) {

// Pregunto si el dato del arreglo en la posicion i es mayor q la


variable num

if (arreglo[i] >= num) then

// Si es mayor lo asigno a la variable num para


retornarlo despues

num = arreglo[i];

end if

end for // Retorno el valor mayor del arreglo

return num;

int obtenerPosMayorLista (int arreglo[n], int n) {

// Declaro la variable mayor y le asigno el mayor del arreglo x medio


de la funcion

que cree antes

int mayor = obtenerMayorLista(arreglo, n);

int i = 0;

int encontro = 0;

int pos = 0;
// Recorro el arreglo de datos mientras la posicion actual es menor
q el tamao del

arreglo y mientras la variable encontro sea igual a 0

while (i<n && encontro = 0) {

// Pregunto si el dato del arreglo es igual al dato mayor del


mismo

if (arreglo[i] == mayor)

encontro = 1;

pos = i;

end if

i = i+1; // Incremento la posicion

end while // Retorno la posicion del valor mayor del arreglo

return pos;

}
2. calcule el dato minimo y cuente la cantidad de veces q se repita

int obtenerMenorLista (int arreglo[n], int n) {

int num = 0; // declaro esta variable para asignarle el menor numero


del arreglo

// Recorro el arreglo de datos

for (int i=0; i<n; i++) {

// Si es el primer elemento del arreglo le asigno a la variable


num para compararlo

con los demas elementos del arreglo

if (i==0)

num = arreglo[i];

// Pregunto si el elemento actual del arreglo es menor que el valor de num

if (arreglo[i] <= num) then

// Si es menor lo asigno a la variable num para


retornarlo despues

num = arreglo[i];

end if

end for

// Retorno el valor menor del arreglo

return num;

}
int obtenerNumMenorRepetido (int arreglo[n], int n) {

// Declaro la variable menor y le asigno el menor del arreglo x


medio de la funcion

que cree antes

int menor = obtenerMenorLista(arreglo, n);

int cont = 0;

// Recorro el arreglo de datos

for (int i=0; i<n; i++) {

// Si el dato actual del arreglo es el valor menor cuento las


veces q se repite

if (arreglo[i] == menor)

cont = cont + 1;

end if

end for

// Retorno el numero de veces q se repite el menor

return cont;

Finalmente creo el objeto con el que podre manipular cada una de


la funciones.