You are on page 1of 32

PORTAFOLIO DE ESTRUCTURA DE DATOS

Universidad Tcnica De Manab


Facultad de Ciencias Informticas
KELVIN VELIZ MARCILLO
Sbado 06 de Julio del 2013

Docente: Ing. Cristian Torres


Materia De Estructura de Datos Perodo Mayo - Septiembre 2013

UNIVERSIDAD TCNICA DE MANABI


Misin: Formar acadmicos, cientficos y profesionales responsables, humanistas, ticos y solidarios, comprometidos con los objetivos del desarrollo nacional, que contribuyan a la solucin de los problemas del pas como universidad de docencia con investigacin, capaces de generar y aplicar nuevos conocimientos, fomentando la promocin y difusin de los saberes y las culturas, previstos en la Constitucin de la Repblica del Ecuador.

Visin: Ser institucin universitaria, lder y referente de la educacin superior en el Ecuador, promoviendo la creacin, desarrollo, transmisin y difusin de la ciencia, la tcnica y la cultura, con reconocimiento social y proyeccin regional y mundial.

FACULTAD DE CIENCIAS INFORMATICAS

Misin: Ser una unidad con alto prestigio acadmico, con eficiencia, transparencia y calidad en la educacin, organizada en sus actividades, protagonistas del progreso regional y nacional.

Visin: Formar profesionales eficientes e innovadores en el campo de las ciencias informticas, que con honestidad, equidad y solidaridad, den respuestas a las necesidades de la sociedad elevando su nivel de vida.

UNIVERSIDAD TCNICA DE MANAB FACULTAD DE CIENCIAS INFORMTICAS

CARRERA DE INGENIERA DE SISTEMAS INFORMTICOS

NDICE DE CONTENIDOS Syllabus Carta de presentacin Autorretrato Diario meta cognitivo Artculos de revistas profesionales Tereas Materiales relacionados con la clase. Anexos

UNIVERSIDAD TCNICA DE MANAB FACULTAD DE CIENCIAS INFORMTICAS


CARRERA DE INGENIERA EN SISTEMAS INFORMTIVOS

Autorretrato Mi nombre Veliz Marcillo Kelvin Otoniel. Soy estudiante de la asignatura de ESTRUCTURA DE DATO, actualmente curso el segundo semestre en La Facultad de Ciencias Informticas de la Universidad Tcnica de Manab. Soy una persona responsable, organizada y me gusta trabajar en equipo, ya que pienso que el trabajo en equipo es mejor porque podemos compartir ideas con los dems y as tanto ensearles a los dems como tambin aprender de ellos. Mis metas son convertirme en un profesional de la Ingeniera en Sistemas Informticos, y contribuir para el avance tecnolgico de mi pas, sabiendo as que la tecnologa hoy en da es un pilar fundamental para el progreso econmico de los grandes pases del mundo.

CARRERA DE INGENIERA EN SISTEMAS INFORMTIVOS

UNIVERSIDAD TCNICA DE MANAB FACULTAD DE CIENCIAS INFORMTICAS

CARTA DE PRESENTACIN
Este portafolio presenta mi trayectoria en el curso de: ESTRUCTURA DE DATO, este curso tiene como objetivos desarrollar las destrezas de. Las habilidades y agilidad. Durante este medio ciclo pude conocer sobre. Las estructura anidadas, funciones, punteros, listas simples. Las tcnicas presentadas por el docente me ayudaron a mejorar como futuro profesional de la Informtica. Las reas ms dificultosas del curso fueron: Lo ms dificultoso fue sobre las listas simples, y las estructura anidadas

Clase No 1 y 2

Qu es un array?

Es un conjunto de elementos del mismo tipo de datos Guarda un conjunto de elementos de la misma clase
Para referirnos a uno de ellos se hace referencia a la posicin que ocupa el dato respecto a los otros. Pueden ser unidemsionales (vectores) multidimensionales (matrices ) Ej: numeros={0,1,2,3,4,5,6,7,8,9}

VECTORES o Arreglos unidimensionales o Bidimensionales o Matrices OPERACIONES CON VECTORES o Podemos hacer con un vector: o Llenar o Mostrar o Ordenar o Buscar: o Secuencial o Binaria

QUE ES EL INDICE EN LOS ARRAY?

Conjunto de direcciones de direcciones de memoria que est en posicin continua. TAMAO FISICON SERA SIEMPRE MAYOR O IGUAL QUE EL TAMAO LOGICO (TF>=TL)
#include<conio.h> #include<stdio.h> #include<iostream.h> void main() { int x[5]; x[0]=1; x[1]=10; x[2]=5; x[3]=80; x[4]=52; for(int i=0; i<5;i++) cout<<"la posicion("<<i<<")tiene el velor de:"<<x[i]<<"\n"; getch(); }

Tarea sopa de letras

#include<conio.h> #include<string.h> #include<stdio.h> #include<iostream.h> void main() { clrscr(); char x[10][10]={'Q','A','W','S','L','D','R','K','T','A', 'D','A','R','I','O','G','N','C','J','N', 'Z','R','X','S','O','D','V','I','B','A', 'M','O','J','U','R','T','F','R','D','E', 'P','N','G','T','C','A','D','E','U','H', 'Q','A','W','S','L','D','R','G','T','A', 'D','A','D','I','O','G','N','C','J','I', 'Z','X','X','S','A','D','V','I','B','U', 'M','E','J','U','R','T','F','R','D','E', 'P','N','G','T','C','A','D','O','U','H'}; cout<<"las palabras que buscaras son:"; cout<<"\nAARON-DARIO-ERICK-ANA-LOOR"<<"\n"; for(int i=0; i<10;i++) {cout<<"\n"; for(int j=0;j<10;j++) cout<<x[i][j]; } getch(); }

Cuando pasamos un array como parmetro en realidad estamos pasando un puntero al primer elemento del array, las modificaciones que hagamos a un array en sus elementos en una funcin sern permanentes aun despus del retorno. Qu es una funcin? Es un mdulo de un programa separado del cuerpo principal que realiza una tarea especfica y puede regresar un valor o procedimiento que involucre. Qu es parmetro y tipos de pasos parmetros?

Variable que puede pasar su valor a un procedimiento desde el cuerpo principal desde otro procedimiento, el valor que se pasa desde el cuerpo principal(void main) u otro procedimiento a una funcin se llama parmetros. Tipos de pasos parmetros Por Valor. Por Referencia no retorna el tipo ser void.

Tipo NombreFuncion(Parametros); - tipo se refieren al valor que retornara la funcin y cuando Ejemplo de paso de parmetro por valor. int nomfuncion(int x,int y) { n=n+2; m=m-5; return(n+m); } Ejemplo de paso de parmetro por referencia. int nomfuncion(int &x,int &y) { n=n+2; m=m-5; return(n+m); }

Que es Argumento? Es una variable que necesita la funcin para ejecutar un procedimiento. Rango de bits que tienen las variables

Qu es estructura de datos? Coleccin de datos ordenados y tcnicamente organizados struct = palabra reservada que indica q se iniciara a crear una estructura. Ejemplo: struct etiqueta{ //inicio de la estructura int a; //campo1 char b; //campo2 //ncampos
};

Qu es campo o miembro? Se define como las variables de tipo primitivas, ejemplo.


struct estructura_amigo { char nombre[30]; char apellido[40]; char telefono[10]; char edad; }; A cada elemento de esta estructura (nombre, apellido, telfono) se le llama campo o miembro. Ejemplo de cmo alimentar a una variable estructurada. struct nombrestruct A; //declaramos la variable A.nombre=carlos eduardo; //estamos ingresando al compo nombre el dato carlos eduardo a travs del(.)se accede a campo de la variable A.

Clase No 3 y 4 Inicializar datos en una estructura A las estructuras se les puede dar valores iniciales de manera anloga a como hacamos con los arrays.
struct N_amigo amigo = {"Juanjo","Lopez","592-0483",30}; Por supuesto hemos de meter en cada campo el tipo de datos correcto. La definicin de la estructura previamente.

#include<stdio.h> #include<conio.h> #include<iostream.h> struct estructura_amigo { char nombre[30]; char apellido[40]; char telefono[10]; int edad; }; struct estructura_amigo amigo = {"Juanjo","Lopez","592-0483",30}; int suma( struct estructura_amigo arg_amigo ) { return arg_amigo.edad+20; } void main() { printf("%s tiene",amigo.apellido); printf("%i aos ",amigo.edad); printf("y dentro de 20 aos tendr %i.\n",suma(amigo)); getch(); }

Paso de estructuras a funciones?


Las estructuras se pueden pasar directamente a una funcin igual que hacamos con las variables. Por supuesto en la definicin de la funcin debemos indicar el tipo de argumento que usamos, Ejemplo: int nombre_funcin ( struct nombre_de_la_estructura &nombre_de_la variable_estructurada) { Sentencias; }

Pasar slo miembros de la estructura. Otra posibilidad es no pasar toda la estructura a la funcin sino tan slo los miembros que sean necesarios. Los ejemplos anteriores seran ms correctos usando esta tercera opcin, ya que slo usamos el miembro 'edad':
Paso1 desde el main invoca la funcin suma Suma(A.edad); Paso2 la funcin suma recibe en el parmetro el mismo tipo de dato que se le ha enviado e este caso es un entero int suma( int edad ) {sentencias;}

Insertado al final Insertar un elemento a continuacin de un nodo cualquiera de una lista


De nuevo podemos considerar el caso anterior como un caso particular de este. Ahora el nodo"anterior" ser aquel a continuacin del cual insertaremos el nuevo nodo:

Insertar dentro

Suponemos que ya disponemos del nuevo nodo a insertar, apuntado por nodo, y un puntero al nodo acontinuacin del que lo insertaremos.El proceso a seguir ser: Hacer que nodo->siguiente seale a anterior->siguiente. Hacer que anterior->siguiente seale a nodo.

Insertado dentroBuscar o Localizar elemento en una lista abierta


Muy a menudo necesitaremos recorrer una lista, ya sea buscando un valor particular o un nodoconcreto. Las listas abiertas slo pueden recorrerse en un sentido, ya que cada nodo apunta alsiguiente, pero no se puede obtener, por ejemplo, un puntero al nodo anterior desde un nodo cualquierasi no se empieza desde el principio.Para recorrer una lista procederemos siempre del mismo modo, usaremos un puntero auxiliar comondice:Asignamos al puntero ndice el valor de Lista.Abriremos un bucle que al menos debe tener una condicin, que el ndice no sea NULL.Dentro del bucle asignaremos al ndice el valor del nodo siguiente al ndice actual.

Eliminar elemento a una lista abiertaEliminar el primer nodo en una lista abierta

Eliminar primer nodo


Es el caso ms simple. Partiremos de una lista con uno o ms nodos, y usaremos un puntero auxiliar,nodo:1. Hacemos que nodo apunte al primer elemento de la lista, es decir a Lista.2. Asignamos a Lista la direccin del segundo nodo de la lista: Lista->siguiente.3.

Liberamos la memoria asignada al primer nodo, el que queremos eliminar.Si no guardamos el puntero al primer nodo antes de actualizar Lista, despus nos resultara imposibleliberar la memoria que ocupa. Si liberamos la memoria antes de actualizar Lista, perderemos el punteroal segundo nodo.

Primer nodo eliminado


Si la lista slo tiene un nodo, el proceso es tambin vlido, ya que el valor de Lista->siguiente es NULL, y despus de eliminar el primer nodo la lista quedar vaca, y el valor de Lista ser NULL. De hecho, el proceso que se suele usar para borrar listas completas es eliminar el primer nodo hastaque la lista est vaca.

Eliminar un nodo cualquiera de una lista abierta


En todos los dems casos, eliminar un nodo se puede hacer siempre del mismo modo. Supongamos quetenemos una lista con al menos dos elementos, y un puntero al nodo anterior al que queremos eliminar.Y un puntero auxiliar nodo.

Eliminar un nodo
El proceso es parecido al del caso anterior:1. Hacemos que nodo apunte al nodo que queremos borrar.2. Ahora, asignamos como nodo siguiente del nodo anterior, el siguiente al que queremoseliminar: anterior->siguiente = nodo>siguiente. 3.

Eliminamos la memoria asociada al nodo que queremos eliminar .

Nodo eliminado
Si el nodo a eliminar es el ltimo, es procedimiento es igualmente vlido, ya que anterior pasar a ser el ltimo, y anterior->siguiente valdr NULL.

Moverse a travs de una lista abierta


Slo hay un modo de moverse a travs de una lista abierta, hacia delante.An as, a veces necesitaremos acceder a determinados elementos de una lista abierta. Veremos ahoracomo acceder a los ms corrientes: el primero, el ltimo, el siguiente y el anterior.

Primer elemento de una lista


El primer elemento es el ms accesible, ya que es a ese a que apunta el puntero que define la lista. Paraobtener un puntero al primer elemento bastar con copiar el puntero Lista.

Elemento siguiente a uno cualquiera


Supongamos que tenemos un puntero nodo que seala a un elemento de una lista. Para obtener un puntero al siguiente bastar con asignarle el campo "siguiente" del nodo, nodo>siguiente.

Elemento anterior a uno cualquiera


Ya hemos dicho que no es posible retroceder en una lista, de modo que para obtener un puntero alnodo anterior a uno dado tendremos que partir del primero, e ir avanzando hasta que el nodo siguientesea precisamente nuestro nodo.

ltimo elemento de una lista

Para obtener un puntero al ltimo elemento de una lista partiremos de un nodo cualquiera, por ejemploel primero, y avanzaremos hasta que su nodo siguiente sea NULL.

Saber si una lista est vaca


Basta con comparar el puntero Lista con NULL, si Lista vale NULL la lista est vaca.

Borrar una lista completaEl algoritmo genrico para borrar


una lista completa consiste simplemente en borrar los punteros.

You might also like